77范文网 - 专业文章范例文档资料分享平台

ActiveMQ使用手册(8)

来源:网络收集 时间:2019-04-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

此外,从5.6版本起,可以在networkConnector上设置destinationFilter来指定感兴趣的Advisory Message将被传播。

destinationFilter=\Topic.include.test.bar\>

3.3.4 被卡住的消息

一个很有意思的场景是,broker1和broker2通过networkConnector连接。一些个consumers连接到 broker1,消费broker2上的消息。消息先被broker1从broker2上消费掉,然后转发给这些consumers。不幸的是转发部分消 息的时候broker1重启了,这些consumers发现broker1连接失败,通过failover连接到broker2上去了,但是有一部分他们 还没有消费的消息被broker2已经分发到了broker1上去了。这些消息,就好像是消失了,除非有消费者重新连接到broker1上来消费。怎么办 呢?

办法就是从5.6版本destinationPolicy上新增的选项replayWhenNoConsumers。这个选项使得broker1上 有需要转发的消息但是没有消费者时,把消息回流到它原始的broker。同时把enableAudit设置为false,为了防止消息回流后被当做重复消 息而不被分发。

第33页

3.3.5 其他说明

.NetworkConnector基于AdvisoryMessage机制,如果broker的advisorySupport选型被禁用,则NetworkConnector将不起作用。 用作转发的broker中入列出列这些统计信息只记录其转发的数据。 用作转发的broker中无法看到远程broker的相同队列中的数据(browse消息列表为空,queuesize为0)。

3.4 AMQ集群方式--Master Slave

在一个网络内运行多个brokers或者stand alone brokers时存在一个问题,这就是消息在物理上只被一个broker持有,因此当某个broker失效,那么你只能等待直到它重启后,这个 broker上的消息才能够被继续发送(如果没有设置持久化,那么在这种情况下,消息将会丢失)。Master Slave 背后的想法是,消息被复制到slave broker,因此即使master broker遇到了像硬件故障之类的错误,你也可以立即切换到slave broker而不丢失任何消息。

Master Slave是目前ActiveMQ推荐的高可靠性和容错的解决方案。以下是几种不同的类型: Master Requirements Slave Type Pure Master Slave Shared File System Master Slave JDBC Pros Cons None Requires manual restart No central point of to bring back a failed failure master and can only support 1 slave Run as many slaves A Shared File as required. Requires shared file system such as a Automatic recovery system SAN of old masters A Shared Run as many slaves Requires a shared 第34页

Master Slave database as required. database. Also Automatic recovery relatively slow as it of old masters cannot use the high performance journal

3.4.1 Pure Master Slave

Pure Master Slave该方式已经逐渐被淘汰,这里不再描述。

3.4.2 Shared File System Master Slave

如果你使用SAN或者共享文件系统,那么你可以使用Shared File System Master Slave。基本上,你可以运行多个broker,这些broker共享数据目录。当第一个broker得到文件上的排他锁之后,其它的broker便会在循环中等待获得这把锁。客户端使用failover transport来连接到可用的broker。当master broker失效的时候会释放这把锁,这时候其中一个slave broker会得到这把锁从而成为master broker。以下是ActiveMQ配置的一个例子:

3.4.3 JDBC Master Slave

JDBC Master Slave的工作原理跟Shared File System Master Slave类似,只是采用了数据库作为持久化存储。以下是ActiveMQ配置的一个例子:

...

第35页

id=\

class=\

destroy-method=\

value=\

name=\

第36页

第四章 ActiveMQ+Mongodb集群实践

正常的来说,Master-Slave方式集群无法处理负载均衡,一般都是通过Broker-Clusters + Master-Slave方式。在负载均衡上,配置文件使用networkConnectors属性配置,java客户端使用failover协议来处理。

4.1 AMQ+Mongodb的群集

对于ActiveMQ 5.9.1的配置,直接将如下的压缩包拷贝到ActiveMQ根目录的lib目录,并解压缩。(一个专为5.9.0版本使用,另一个专为5.9.1版本使用)

MQ-store-mongodb-5.9.0.zipMQ-store-mongodb-5.9.1.zip

然后在activemq.xml的broker结点下加入:

uri=\

通过java来使用该AMQ集群发送处理时,

ActiveMQConnectionFactory factory =

newActiveMQConnectionFactory(“failover:(tcp://host1:61618,tcp://host1:61618)”);

Connectionconnection = factory.createConnection(); connection.start();

Sessionsession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session

.createQueue(ActiveMQUtils.testQueueName);

MessageProducerproducer = session.createProducer(destination);

第37页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ActiveMQ使用手册(8)在线全文阅读。

ActiveMQ使用手册(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/571712.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: