假设我有一个简单的聊天应用程序,其中一些客户端可以将消息发布到某些频道X,而某些客户端希望订阅X中的所有消息(基于频道的多播)。
我应该为每个频道创建一个扇出交换,还是有一种方法可以在此用例中使用主题?
添加到频道X的新客户端也应该能够读取X的最后一条消息。如何完成?
它将扩展到数百万个频道吗?
(还是我应该看一下MQTT?)
答案 0 :(得分:0)
RabbitMQ主题交换(使用pub / sub)绝对是创建这种分发模式的一种选择……生产者将确保其消息的路由键与“通道X”相对应,而消费者(通过其队列)将确保以匹配模式绑定到该交易所。这意味着您不需要为每个频道都使用特定的Exchange。但尚不清楚它是否可以扩展到数百万个频道。
如果考虑其他消息传递技术,也许看看Solace? (仅供参考,我为他们工作)。实际上,我们有一个免费的Udemy开发人员课程,您可以在其中构建聊天应用程序! https://www.udemy.com/fundamentals-of-solace-development/。如果想走那条路,Solace会原生支持MQTT,并且还具有内置的重播功能,可用于检索给定主题上的最后 n 条消息。