背景
C143 umbrella 的 Stage-5a+5b 落地。服务注册中心 + Watcher(DynamicPhase-0/1 发现层)。Mongo 运行时依赖在此 issue 引入。
设计源:gfx-doc/dev/online-platform/process-topology-isomorphism-design-2026-09-21.md § D11-D18。
Change 文件:gfx-doc/dev/startup/changes/C143d-process-topology-stage5ab-registry-watcher-discovery/change.md。
范围
EndpointParser 统一 scheme://host:port 解析(域名/容器名/Kubernetes Service 名/IPv4/IPv6 方括号)。
MongoEndpointRegistry 写侧(环境变量 AdvertiseHost 一等缺省 + 出口地址探测 fallback + 5s 心跳 upsert + 优雅退出 Stopped)。
MongoEndpointWatcher 读侧(5s 轮询 + lastHeartbeat 三周期阈值 + 双视图路由表原子替换 + Instance* 事件 + incarnation 判定)。
- 控制库
gameframex_control database(接入 MultiDbRegistry,C143a 落地)。
RoleRouter case 2/3 真实实现(消费双视图路由表)。
任务
验收
- AC-4 动态扩缩:无状态 Role 实例增减 ≤10s 全网感知;缩容走 Draining→Stopped 优雅语义。
- AC-4a 地址格式统一:endpoint 一律
scheme://host:port,所有形态支持。
- D15 路由表重建:双视图原子替换;事件广播正确;incarnation 判定准确。
- D17 上下线感知四通道:Mongo 心跳写侧 + SessionManager(→ C143e)+ 控制库 player_route(→ C143e)+ 进程退出信号(→ 本 issue 落地 Stopped)。
依赖
- 依赖:C143a(MultiDbRegistry 控制库支持)+ C143c(RoleRouter 占位 case 2/3)
- 阻塞:C143e
标签约定
P1 project:gameframex.server.source blocked-by-dependency
背景
C143 umbrella 的 Stage-5a+5b 落地。服务注册中心 + Watcher(DynamicPhase-0/1 发现层)。Mongo 运行时依赖在此 issue 引入。
设计源:
gfx-doc/dev/online-platform/process-topology-isomorphism-design-2026-09-21.md§ D11-D18。Change 文件:
gfx-doc/dev/startup/changes/C143d-process-topology-stage5ab-registry-watcher-discovery/change.md。范围
EndpointParser统一scheme://host:port解析(域名/容器名/Kubernetes Service 名/IPv4/IPv6 方括号)。MongoEndpointRegistry写侧(环境变量AdvertiseHost一等缺省 + 出口地址探测 fallback + 5s 心跳 upsert + 优雅退出Stopped)。MongoEndpointWatcher读侧(5s 轮询 + lastHeartbeat 三周期阈值 + 双视图路由表原子替换 +Instance*事件 + incarnation 判定)。gameframex_controldatabase(接入MultiDbRegistry,C143a 落地)。RoleRoutercase 2/3 真实实现(消费双视图路由表)。任务
EndpointParser实现(域名/IPv4/IPv6 方括号/Kubernetes Service 名支持;端口/scheme 缺失抛EndpointFormatException)ParsedEndpoint/InstanceDescriptor/InstanceStatus数据模型MongoEndpointRegistry写侧MongoEndpointWatcher读侧gameframex_control接入MultiDbRegistryRoleRoutercase 2/3 真实实现dotnet test全绿 + CI gate 绿验收
scheme://host:port,所有形态支持。依赖
标签约定
P1project:gameframex.server.sourceblocked-by-dependency