我目前有一个pub/sub系统正在运行,它允许客户端连接到一个中央消息路由守护进程,订阅一系列消息,然后开始喋喋不休。路由守护进程跟踪和维护每个用户感兴趣的消息(基于一个简单的标签),并在每个订户生成它们时传递相应的感兴趣消息。基本上,每个连接都被认为是潜在的发布者或订户并且通常是,守护进程根据需要处理路由和传送。ZeroMQ分布模式
例如,三个客户端的所有连接,并订阅感兴趣的消息标记(S)(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的守护进程,即中间的猴子。
有什么建议吗?
谢谢,这是好东西。我试图采用epgm方法,并不确定我是否对zmq做了些愚蠢的事情,或者如果我在使用的服务器上存在MCAST环回问题。我确信我被困在了15年的车辙中(这是我编写pub/sub守护进程的时候),我错过了一些明显的东西。仍然不确定发生了什么问题,默认的TTL为1应该允许在同一个系统上使用通信,但我会继续插入。 – jbphelps 2013-04-24 00:39:55