我目前正在运行一个发布/订阅系统,它允许客户端连接到中央消息路由守护进程,订阅一系列消息,然后开始聊天。路由守护进程跟踪和维护每个订阅者感兴趣的消息(基于一个简单的标签),并在每个订阅者生成它们时传递适当的感兴趣消息。本质上,每个连接都被认为是潜在的发布者或订阅者,并且通常两者,守护进程根据需要处理路由和传递。
例如,三个客户端都连接并订阅他们感兴趣的消息标签(MT):
Client 1(C1) subscribes to MT => 123
Client 2(C2) subscribes to MT => 123 & 456
Client 3(C3) subscribes to MT => 123 & 456 & 789
C1 produces MT 456: daemon delivers a copy to C2 and C3
C2 produces MT 123: daemon delivers a copy to C1 and C3 (not self)
C3 produces MT 999: daemon delivers it to none (nobody subscribed)
ZeroMQ 在与一位同事的讨论中提出,经过几天的修补后,我认为我没有看到实施/替换我们目前拥有的系统的正确模式。此外,我想使用 EPGM 来利用多播收益并消除我目前拥有的基于 TCP 的守护进程,即中间的猴子。
有什么建议么?