Nats 消息总线相关介绍(四):Topic 相关

Nats topic 订阅信息维护

Nats topic 订阅信息,按以下方式维护:

  • 普通节点连接路由节点后,全量同步本地 topic 订阅信息给路由节点
  • 路由节点广播连接它的普通节点 INFO 命令;进而所有节点连接普通节点,使其转化为路由节点
  • 客户端 SUB 命令,本地节点维护本地订阅信息,然后广播所有节点该 SUB 命令(使用 RS+ 命令)
  • 其他所有节点收到 RS+ 命令,维护远端订阅信息

以上过程,总结下:

  • INFO 命令,出发本地订阅信息,全量同步目标节点
  • SUB 命令,客户端同步本地节点
  • RS+ 命令,本地节点同步全量节点

INFO 命令

以下情况出发 INFO 命令生成:

  1. 路由节点监听到新连接进来,会发送路由节点自身的 INFO 命令
    • Server.Start -> Server.StartRouting -> Server.startRouteAcceptLoop -> Server.createRoute(route.go:1401)
  2. 普通节点连接初始路由节点,会发送普通节点自身的 INFO 命令
    • Server.Start -> Server.StartRouting -> Server.startRouteAcceptLoop -> Server.solicitRoutes -> Server.connectToRoute -> Server.createR

你可能感兴趣的:(源代码分析,Nats,nats-server,消息总线,后端,源代码分析)