我正在寻找一个pub / sub引擎,具有以下要求:
我希望能够拥有多个发布/订阅服务器,并能够从任何服务器发布或订阅频道,无论服务器是否声明了频道。
例如:
如果用户A 连接到服务器 SRV1 且用户B 连接到服务器 SRV2 ,如果用户B 订阅“ MyChannel ”并用户A 在频道“ MyChannel ”上发布内容,用户B < / strong>即使没有连接到同一台服务器也会收到消息。
我不知道Redis是否能够做到这一点。我没有找到关于这个主题的任何信息。 欢迎任何帮助。
答案 0 :(得分:4)
答案 1 :(得分:2)
我建议你看看Data Distribution Service for Real Time Systems (DDS)标准。它专门设计为可扩展的pub / sub中间件,适用于实时和非实时系统。
它有一些成熟的实现,所有这些都有它自己的优势点,但通常实现是可扩展的,低延迟。
这些是我建议你看的实现(如果你需要它们在WAN环境中工作,我猜前两个对它有很大的支持):
答案 2 :(得分:1)
看来你正在寻找某种消息。使用RabbitMQ或shovel插件3>尝试federation
答案 3 :(得分:1)
nanomsg
是ZeroMQ
的继承者,由同一作者撰写,并且有许多语言绑定。
它是用C语言编写的,并使用零拷贝机制。如果你正在寻找特殊的延迟,并且愿意沾沾自喜(如果你的目标是极端的话你就应该这样做),我会推荐其中的一个。
如果您正在寻找卓越的吞吐量,请使用Kafka
。
请注意,这些解决方案都没有实现开箱即用的地理位置,Redis 3.2将有一些东西:http://antirez.com/news/89
如果您正在寻找一个简单,“足够好”的解决方案,我会选择Redis
(请务必先阅读this blog post from aphyr)。