activemq支持的功能:排他性消费者
背景:
这个功能主要是为了解决jms集群的问题而提出的
当你使用product 产生一个消息并且放置到一个queue中的时候
如果说你使用了集群,并且每一个集群里面消费的队列都是刚才的那个队列
那么这个时候就会出现并发的时候 这么多集群
同时都消费了这个队列里面产生的消息,出现了重复的消费
一般的情况下碰到这个请求时候就只能在集群中使用一个jvm来关联到这个队列中
其他的服务器是不可以和那个队列相关联的,但是这样做也会存在一个错误的地方
那就是会造成一旦这个单独的jvm进程终止的话,就没有办法处理这个队列中的内容了
这样就失去了集群本来的含义了
排他性消费者:
针对以上的问题,activemq提出了排他性消费者这个功能,该功能支持你的集群中所有的
主机配置启动和运行都是一摸一样的,activmq会自动帮你找到一个主机当做是master,然后
使用的时候会把queue都让这个主机来消费,一旦这个主机down掉了以后那么就会自动的找其他的主机来做备份机,来消费这个消息
这个就很类似真正的集群了,或者说是实现了负载均衡策略
实例:
一般情况下排他性消费是使用在队列的后面加一个可选的属性来决定的,如下列的例子:
queue = new ActiveMQQueue("TEST.QUEUE?[color=red]consumer.exclusive=true[/color]");
consumer = session.createConsumer(queue);