ActiveMQ VirtualTopic】的更多相关文章

参考网址: http://activemq.apache.org/virtual-destinations.html http://blog.csdn.net/kimmking/article/details/9773085 实际场景: 整个项目中,自己处于consumer端,与另外一个consumer共同监听topic消息,发送的是VirtualTopic消息. 原来使用的 VirtualTopic.***监听不到消息,后请教同组大神,才知道要改成Consumer.***.VirtualTop…
消费端消费消息: 在 初识ActiveMQ 中我提到过,两种方法可以接收消息,一种是使用同步阻塞的ActiveMQMessageConsumer#receive方法.另一种是使用消息监听器MessageListener.这里需要注意的是,在同一个session下,这两者不能同时工作,也就是说不能针对不同消息采用不同的接收方式.否则会抛出异常.至于为什么这么做,最大的原因还是在事务性会话中,两种消费模式的事务不好管控. 先通过ActiveMQMessageConsumer#receive 方法来对…
一句话总结: VirtualTopic是为了解决持久化模式下多消费端同时接收同一条消息的问题.   想象这样一个场景:   生产端产生了一笔订单,作为消息MessageOrder发了出去. 这笔订单既要入订单系统归档,又要入结算系统收款,那怎么办呢?   现在分析该消息的需求:   持久化:订单很重要,丢了可不行 同时接收:既要归档,又要结算 生产端只需向一个Destination发送:一把钥匙开一把锁,保持发送的一致性,否则容易乱套   方案A: 使用Topic订阅模式,虽然满足1对多同时接收…
之前写过一篇文章讨论VirtualTopic,但觉得不够透彻,这里再根据实验结果进行一次横向对比破除模糊和选择困难症. 文章中核心对比要素是:消息副本和负载均衡 Queue的特点和优势 ActiveMQ中Queue适用于"一对一"场景,单条消息无副本,只会被一个消费者消费.如果单个队列同时有多个消费者连接,则消息会按照一定的顺序依次发送给不同消费者消费,例如10条消息发送给5个消费者,那么消费者(1,2,3,4,5)分别获得(2,1,3,2,2)条消息,这就实现了负载均衡. 所以Que…
1.  什么是ActiveMQ ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信.ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改. ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件.ActiveMQ实现了JMS标准并提供了很多附加的特性.这些附加的特性包括,JMX管理(java Management Extensions,…
关键字: activemq 2.6 Features    ActiveMQ包含了很多功能强大的特性,下面简要介绍其中的几个.2.6.1 Exclusive Consumer    Queue中的消息是按照顺序被分发到consumers的.然而,当你有多个consumers同时从相同的queue中提取消息时,你将失去这个保证.因为这些消息是被多个线程并发的处理.有的时候,保证消息按照顺序处理是很重要的.例如,你可能不希望在插入订单操作结束之前执行更新这个订单的操作.    ActiveMQ从4.…
郑重提示,本文转载自http://shift-alt-ctrl.iteye.com/blog/2065436 ActiveMQ提供了虚拟通道的特性(Virtual Destination),它允许一个逻辑通道(logical destination)映射成一个或者多个物理通道(physical destination);它可以非常灵活的解决"消息整合"方面的问题,它可以实现: 1) 提供了VirtualTopic特性,可以让一个订阅者的消息列表,作为Queue来消费. 2) 提供了Co…
1.    Composite Destinations  组合目的地 组合队列Composite Destinations : 允许用一个虚拟的destination代表多个destinations,这样就可以通过composite destinations在一个操作中同时向多个queue/topic发送消息. 有两种实现方式: 第一种:在客户端编码实现 第二种:在activemq.xml配置文件中实现 第一种:在客户端编码实现 在composite destinations中,多个desti…
http://activemq.apache.org/virtual-destinations.html 普通的 topic 是发布/订阅模式:消息会被广播发送给所有的订阅者,订阅者拿到的是全部消息,如下图: 而 virtual topic,在消息的传递过程中,多加了一个队列节点,如下图: 全量的消息先发送到队列,然后再分发给消费者.这么做有什么好处呢? 假定consumer1和consumer2分别是2个进程,2个进程共同处理消息,这算不算负载均衡呢? 其次,如果consumer1挂掉了,队列…
前言 JMS介绍:JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信.(百度 ) 本文只测试ActiveMQ,其他消息中间件应该同理. ActiveMQ介绍 JMS常见2种消息模型: 点对点(Queues队列)生产者产生消息,仍1条消息给ActiveMQ,消费者监听ActiveMQ,从ActiveMQ中取走1条消息,并销毁这个消息,且只会有一个监听…