- 业务场景:
业务系统A(生产者)
业务系统B(消费者,集群)
业务系统C(消费者,集群)
目前业务需求:
业务系统A发送一条消息
业务系统B中只有一台服务器能够接收,其他集群对象接收不到
业务系统C中只有一台服务器能够接收,其他集群对象接收不到
- 问题
使用队列模式:只会有一台服务器接收到消息,如果是cosumerA1消费了消息,则consumerA2,consumerB1,consumerB2都消费不了
使用订阅模式:4个消费者都会消费到消息 - 解决方案:
1.使用虚拟主题模式
虚拟主题类似于1对多的分支功能+消费端的cluster+failover,可以满足上述需求
2.pom引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>