高级特性实战需求
当消费端是多个集群,集群A又包含多个服务。
当每个集群都要接受相同的一批消息,而集群内的每个服务都去分摊消息。
解决办法一:级联
增加一个中转者。但是不是特别的优化,而且性能也不是特别的好。
解决办法二:
1:虚拟主题
生产者
Destination destination = session.createTopic("VirtualTopic.vtgroup");
生产者使用topic模式,VirtualTopic是固定的,vtrgroup是自定义的。
消费者
Destination destination = session.createQueue("Consumer.A.VirtualTopic.vtgroup");
消费者使用queue模式,Consumer是固定格式,A是集群标识,如果其他消费者也是在这个集群,就是A来标识
VirtualTopic.vtgroup和生产者一样。
2:组合Destinations
生产者
Destination destination = session.createQueue("cd.queue,cd.otherqueue");
使用queue模式,在里面是用多个队列。
消费者
Destination destination = session.createQueue("cd.queue");
消费者也使用queue模式,如果是一个集群里面的,队列名称保持一致就行。
参考mqdemo地址:https://www.cnblogs.com/orange-time/p/10609020.html