Scalability 可扩展的实时发布/订阅引擎

Scalability 可扩展的实时发布/订阅引擎,scalability,real-time,redis,publish-subscribe,sharding,Scalability,Real Time,Redis,Publish Subscribe,Sharding,我正在寻找具有以下要求的发布/订阅引擎: 非常低的延迟>,pdf格式:“Code Connected,Vol.1”。(顺便说一句,500毫秒延迟是一个非常非实时的ish标准,基础设施是一个问题,如果一个糟糕的第3层传输服务满足此限制可能会失效。ZeroMQ和nanomsg都有很好的延迟避免能力,减少了ns(!s))

我正在寻找具有以下要求的发布/订阅引擎:

  • 非常低的延迟<0.5秒
  • 可伸缩
  • 可共享(基于地理定位)
  • 我希望能够拥有多个发布/订阅服务器,并且能够从任何服务器发布或订阅频道,无论在哪个服务器上声明频道

    例如:

    如果用户A连接到服务器SRV1用户B连接到服务器SRV2,如果用户B订阅“MyChannel”并用户A在“MyChannel”频道上发布内容,用户B即使未连接到同一服务器,也会收到该消息


    我不知道Redis是否能做到这一点。我没有找到关于这个主题的任何信息。

    您似乎在寻找某种信息。尝试一下,使用我们一直在使用的或插件,它的pub/sub功能已经有一段时间了,我们对所看到的非常满意

    还值得一看下一步会发生什么(通过向上游推送订阅请求来减少网络带宽)

    我建议您看看标准。它是专门为实时和非实时系统设计的可伸缩发布/订阅中间件

    它有一些成熟的实现,所有这些都有自己的优点,但一般来说,这些实现是可伸缩的和低延迟的

    以下是我建议您查看的实现(如果您需要它们在WAN环境中工作,我想前两个实现非常支持这一点):

      • 是的继承者,由同一作者编写,具有许多语言绑定

        它是用C编写的,使用零拷贝机制。如果您正在寻找异常的延迟,并且愿意弄脏您的手(如果您的目标是极端的话,您应该这样做),我建议您选择这两种方法中的一种

        如果您希望获得卓越的吞吐量,请选择
        Kafka

        请注意,这些解决方案都没有实现开箱即用的地理定位,Redis 3.2将具备以下功能:


        如果您正在寻找一个简单的“足够好”的解决方案,我会选择Redis(请务必先阅读)。

        试试activeMQ?这听起来像是我们当时建立的基础设施。我们使用WebSocket服务器实现客户端和服务器之间的低延迟连接,使用AWS ELB实现负载平衡,并结合使用排队技术。第3点。对我们来说还不是什么大问题,但这是我们正在研究的事情。嗨!查看[Realtime.co][1][1]:是的,
        nanomsg
        是smart的妹妹,已经广泛流传的
        ZeroMQ
        杰作。要获得真正的见解,软实时生态系统设计更值得一读Martin Sustrik关于co例程和其他smart notes+Pieter Hintjens的精彩博客文章和出版物>>,pdf格式:“Code Connected,Vol.1”。(顺便说一句,500毫秒延迟是一个非常非实时的ish标准,基础设施是一个问题,如果一个糟糕的第3层传输服务满足此限制可能会失效。ZeroMQnanomsg都有很好的延迟避免能力,减少了ns(!s))