有人说是不用topic,而改用queue,但是这样导致每增加一个新的消息监听系统D的时候,A程序又要重新发布,而且消息在MQ服务器上保存多份(多个队列)
使用Queue的确能解决问题,这样感觉topic的功能挺鸡肋的,通常企业应用都会集群部署的,如果强行用topic又得让每个监听程序内部去做消息记录去重复的逻辑,不知有没有JMS消息服务器可以做到对topic进行分组的功能,只要在监听程序内部设置各自不同的group,然后监听同一个主题就得了,这样即利用了topic多播的优势,又能保证处于同一个group(应用集群)的topic消息只被处理一次--这个只是个人的想法,不知道有没有JMS服务器实现过类似的功能或者还有其他更便捷的方式
https://github.com/alibaba/RocketMQ
高性能、分布式、拉取消息的模式、支持topic概念、支持生产者消费者集群,支持集群消费和广播消费两种模式(就是通过你说的分组的思想来实现),还支持broker的集群;
[该贴被tangxuehua于2013-12-18 00:35修改过]