栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

什么是ActiveMQ Virtual Topic

什么是ActiveMQ Virtual Topic

什么是Topic:Topic实现了发布/订阅模式(pub/sub模式)。归属于多个不同方向的消费者可以同时消费生产者向Topic中发送的消息。

比如:订单场景下,用户下单成功后,会发送两个通知:1. 通知用户下单成功、2. 通知库房发货。这是一条“下单成功”的消息被两个不同的消费方消费了。Topic就是为了解决这种多方消费场景而来的。那么为什么ActiveMQ还会有Virtual Topic的概念呢?这两者之间又有什么区别呢?

首先说一下普通Topic的问题:上面的订单场景中,给库房发通知的消费者只能有一个运行中的实例,这时,如果该服务实例宕机了,那么就会出现消息无法及时消费的问题(此时需要人工处理把服务启动起来),因此这种情况下服务稳定性比较低。

所以ActiveMQ引入了Virtual Topic这个概念,Virtual Topic中的一个消费方可以同时有多个消费者,比如:给库房发通知的消费者可以同时运行多个,这几个在运行时,只会有一个真正接收消息,当这个活跃的实例无法消费消息时,ActiveMQ会在库房消费者的几个实例里寻找另一个可用的,并把消息发送给它。这样就能够解决消息消费的负载均衡、稳定性问题了。

因为JMS1.1版本中的Topic没有共享的Topic消费者的概念,所有ActiveMQ提出了自己的Virtual Topic的概念以及其使用的方式。在JMS2.0里已经支持通过设置share的参数的方式来解决这个问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号