Hub 為應用層廣播服務,Publisher 發送消息到 Topic,Subscriber 訂閱 Topic 接收消息。類似分布式 Observer Pattern,走 TCP 保證「比 UDP 可靠」。典型用例:
court1、court2…,大屏/網頁訂閱顯示。hostname Topic,Load Balancer/Monitor 訂閱聚合。消息建議用 Snapshot(當前狀態)而非 Incremental,避免丟包導致狀態不一致。
sub <topic>\r\n # 訂閱,立即收到該 Topic 最新消息
unsub <topic>\r\n # 退訂
pub <topic>\r\n<content>\r\n # 發布,所有訂閱者收到 "pub <topic>\r\n<content>\r\n"
同一 Topic 同一時間僅允許一 Publisher,Hub 不提供 CAS。
topic → subscriber set 映射。# 終端 1:啟動 Hub
$ hub 9999
# 終端 2:訂閱 mytopic
$ sub 127.0.0.1:9999 mytopic
# 終端 3:訂閱 mytopic 和 court
$ sub 127.0.0.1:9999 mytopic court
# 終端 4:發布消息
$ pub 127.0.0.1:9999 mytopic "Hello world."
# 終端 2/3 輸出: mytopic: Hello world.
$ pub 127.0.0.1:9999 court "13:11"
# 僅終端 3 輸出: court: 13:11
將原本 End-to-End 的 SOAP/TCP 通訊改為 Pub/Sub,掛載 Monitoring Subscriber 即可無側錄流量、排查故障,極大簡化分布式系統可觀測性建設。