php activemq 教程,简单总结一下 ActiveMQ 的 VirtualTopic 机制

项目中有在使用,所以总结一下。

JMS 有 Topic 这个概念,这是所有了解 JMS 都知道的一个概念。但是可持久化的 Topic 在 JMS 规范中有个限制,那就是对于同一个 Client ID 的 Subscriber,同一时刻只能有一个是有效的。这就造成如果直接使用 Topic,负载均衡等特性就无法实现。但是 Queue 没有这个限制。

解决这个问题有两种方法,一种是用不同的 Client ID(动态生成),另一个就是使用 ActiveMQ 的 VirtualTopic。

默认配置下,一个 Destination 配置成 VirtualTopic.xxx 的名字时,订阅类似 Consumer.A.VirtualTopic.xxx、Consumer.B.VirtualTopic.xxx、Consumer.C.VirtualTopic.xxx 等 Queue 的消费者都会受到这个 VirtualTopic 的消息(每个 Queue 里还是只有一个 Consumer 能收到消息。类似与 Kafka 的 Consumer Group)。这样就解决了持久化的 Topic Client ID 唯一有效的限制。

我觉得这个概念大概了解就可以了。现在 ActiveMQ 正在越来越多地被 RabbitMQ 和 Apache Kafka 取代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值