图解PD分离分布式架构及端口配置解析

1. 顶层:外部访问与路由层

  • 入口:最上方的"访问"是外部请求(如用户/客户端的HTTP/gRPC请求)。

  • 路由(router) :请求首先到达 port: 8090的路由服务。它负责负载均衡 ,将请求分发到下游的 PrefillDecode服务(图中显示 Prefill 0/1Decode 0/1两个实例组)。

2. 中间层:业务逻辑服务(Prefill / Decode)

Prefill 和 Decode 是两类核心业务服务(可能是"预填充"和"解码"类的计算任务),各有 2个实例(0、1) ,体现水平扩展设计。

(1)router → Prefill/Decode 的通信端口
  • Prefill 0/1对外(router访问)的端口:30003(两个实例共享同一端口,说明是"端口复用",通过实例ID区分)。

  • Decode 0/1对外(router访问)的端口:30002(同理,端口复用,实例0/1)。

(2)Prefill ↔ Decode 的内部通信端口
  • disaggregation_bootstrap_port(图中标注为 PREFILL_PORT):

    • Prefill 实例之间、Prefill → Decode 实例的通信端口:8999(双向箭头表示互相通信,比如Prefill计算后把中间结果发给Decode)。
  • dist_init_addr(图中标注为 DIST_PORT):

    • Prefill 内部(0↔1)、Decode 内部(0↔1)的通信端口:6000(Prefill实例间)、6001(Decode实例间)(双向箭头表示实例间同步/协作)。
(3)实例区分:RANK
  • RANK字段:Prefill 0/1Decode 0/1RANK分别为 01,用于服务内部区分实例(类似"节点ID",在多实例环境下标识自身身份,比如选举、分片归属)。

3. 底层:元数据与消息中间件

这两个是系统的"基础设施",为业务服务提供状态管理异步通信能力:

  • etcd(存储)

    • 端口:2379(etcd默认客户端端口,用于存储全局元数据,如服务注册、配置、分布式锁、数据分片位置等)。

    • 作用:保证多实例/多服务的状态一致性(基于Raft协议),是"分布式系统的脑"。

  • NATS(消息)

    • 端口:4222(客户端连接端口)、8222(监控/管理端口)。

    • 作用:作为消息总线 ,实现服务间的异步通信(如Prefill处理完任务后,通过NATS发消息通知Decode;或事件驱动的流程触发)。

4. 特殊配置:1PID 不需要的两项

图右侧注释"1PID 不需要这两项",指的是 dist_init_addrDIST_PORT)和 RANK

  • "1PID"可能是指单进程/单实例部署模式(或特定的简化部署场景)。此时不需要"实例间通信端口(DIST_PORT)"和"实例区分(RANK)",因为只有一个实例,无需多实例协作或身份标识。

整体流程总结

  1. 外部请求 → 路由(8090)→ 负载均衡到 Prefill/Decode(30003/30002)。

  2. Prefill/Decode 实例间通过 8999(跨服务)、6000/6001(同服务内)通信,完成业务逻辑。

  3. 系统依赖 etcd(2379)存储全局状态(如服务注册、分片信息),依赖 NATS(4222/8222)做异步消息传递。

  4. 若为"1PID"单实例场景,可省略 DIST_PORTRANK配置。

相关推荐
圣光SG2 小时前
ES6+ 基础学习笔记
笔记·学习·es6
深眸财经2 小时前
安踏与特步的“隐秘角落”
大数据·人工智能
zx_zx_1232 小时前
红黑树的学习
学习
多年小白2 小时前
【无标题】
大数据·人工智能·科技·ai·ai编程
piao9618272 小时前
2026年3月企业级AI智能体选型攻略:从能力到场景的全维度梳理
人工智能
MyBFuture2 小时前
Halcon模板匹配核心技术解析大全
开发语言·人工智能·计算机视觉·halcon·机器视觉
萌兰三太子2 小时前
深度解析:如何为你的 AI Agent 打造完整的可观测体系
人工智能
小陈phd2 小时前
多模态大模型学习笔记(二十六)—— 核心技术篇③ | 虚拟人的声音情感:从语音合成到声音克隆
笔记·学习
Hali_Botebie2 小时前
LoRA: Low-Rank Adaptation of Large Language Models
人工智能·语言模型·自然语言处理