【问题标题】:RabbitMQ for chat channel-multicasting用于聊天频道组播的 RabbitMQ
【发布时间】:2019-03-02 20:15:34
【问题描述】:

假设我有一个简单的聊天应用程序,其中一些客户端可以向某个通道 X 发布消息,而一些客户端想要订阅 X 中的所有消息(基于通道的多播)。

我应该为每个频道创建一个 Fanout Exchange,还是有办法在这个用例中使用主题?

另外,添加到通道 X 的新客户端应该能够读取来自 X 的最后一条消息。这是如何完成的?

它会扩展到数百万个频道吗?

(或者我应该看看 MQTT?)

【问题讨论】:

    标签: rabbitmq rabbitmq-exchange


    【解决方案1】:

    RabbitMQ 主题交换(使用 pub/sub)绝对是创建这种分发模式的一种选择......生产者将确保其消息的路由键对应于“通道 X”,而消费者(通过他们的队列)将使用匹配模式绑定到此 Exchange。这应该意味着您不需要为每个频道设置特定的 Exchange。但不知道它是否可以扩展到数百万个频道。

    如果考虑其他消息传递技术,不妨看看 Solace? (仅供参考,我为他们工作)。我们实际上有一个免费的 Udemy 开发课程,您可以在其中构建一个聊天应用程序! https://www.udemy.com/fundamentals-of-solace-development/。如果您想走这条路,Solace 原生支持 MQTT,并且还具有内置的重播功能,可用于检索给定主题的最后 n 条消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-12
      • 2018-10-22
      • 1970-01-01
      相关资源
      最近更新 更多