本系列文档对 UMDK(灵衢内存语义开发包)中的 URPC(统一远程过程调用)组件进行深度架构分析和源代码剖析。

📌 导航说明

• 总览报告(单页完整版) — 包含所有分析内容的长报告

• 本页面 — 拆分后的独立文档索引,每个主题单独成篇,方便深度阅读

• 每个独立文档底部有前后导航链接

文档结构

#文档内容阅读时间
01总体架构概览Thesis、分层架构图、数据流向、模块依赖图5 min
02核心模块分析模块函数表、动态分发机制、数据结构10 min
03RPC 调用流 Deep Dive完整 RPC 调用链、Client/Server 端代码路径10 min
04队列生命周期 Deep Dive创建、绑定、状态转换、销毁8 min
05流控窗口 Deep Dive流控状态机、Immediate 数据编码、窗口更新8 min
06UB_PLUS 反向拉取 Deep Dive10MB 大块传输、反向拉取状态机8 min
07内存导入协议 Deep Dive多内存池导入、EID 拓扑管理5 min
08Keepalive 保活 Deep Dive定时器检查、保活消息格式5 min
09控制面 IP 传输 Deep DiveTCP/IP 传输层、SSL 握手、控制消息5 min
10安全加密与扩展SSL/TLS、AES-GCM、Ext Ops5 min

阅读路径推荐

快速了解(15 min)

01 总体架构概览 → 02 核心模块分析(仅看函数表)

深入理解(45 min)

01 → 02 → 03 RPC 调用流 → 04 队列生命周期 → 05 流控窗口

全面掌握(90 min)

按顺序阅读全部 10 篇文档

代码库概况

子系统文件数代码行数核心文件
URPC Framework~40~40,000cp.c, dp.c, channel.c, queue_send_recv.c
UMQ~30~20,000umq_ub.c, umq_ub_impl.c, umq_api.c
协议定义~5~2,000protocol.h, umq_types.h
驱动层~8~5,000provider_ops_jetty.c, jetty_public_func.c

关键洞察

  • 四层动态分发:dp.c → queue_ops → send_recv_send → urma_post → bondp_post
  • 带内控制:利用 immediate 数据编码流控、内存导入、反向拉取等控制协议
  • 并发安全:tx_ctx 双次释放、req_entry hash+线性探测、读写锁分离
  • 资源复用:JFR/JFC 通过 ref_cnt 在多个队列间共享
  • 用户可选:每一层增量功能都是可选的(feature flag)

快速导航

01 总体架构概览
分层架构图、数据流向
02 核心模块分析
函数表、动态分发
03 RPC 调用流
完整调用链、代码路径
04 队列生命周期
创建、绑定、销毁
05 流控窗口
窗口状态机、Immediate
06 UB_PLUS 反向拉取
10MB 传输、状态机
07 内存导入协议
多池导入、EID 管理
08 Keepalive 保活
定时器、消息格式
09 控制面 IP 传输
TCP/IP、SSL 握手
10 安全加密与扩展
SSL/TLS、AES-GCM