欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年activeMQ集群的使用与配置[归 .pdf

    • 资源ID:34879664       资源大小:75.87KB        全文页数:6页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年activeMQ集群的使用与配置[归 .pdf

    1 Clustering(集群 ) ActiveMQ 从多种不同的方面提供了集群的支持。1、 Queue consumer clusters ActiveMQ 支持订阅同一个 queue的 consumers上的集群。如果一个 consumer失效,那么所有未被确认(unacknowledged )的消息都会被发送到这个queue上其它的 consumers 。如果某个 consumer的处理速度比其它consumers更快,那么这个 consumer就会消费更多的消息。需要注意的是,笔者发现AcitveMQ5.0 版本的 Queue consumer clusters 存在一个 bug:采用 AMQ Message Store,运行一个 producer,两个 consumer ,并采用如下的配置文件:Xml 代码 那么经过一段时间后可能会报出如下错误:ERRORActiveMQTransport:tcp:/127.0.0.1:1843-RecoveryListenerAdapter.java:58-RecoveryListenerAdapter Message id ID:versus-1837-1203915536609-0:2:1:1:419 could not be recovered from the data store! Apache官方文档说,此bug已经被修正,预定在5.1.0 版本上体现。2、 Broker clusters 一个常见的场景是有多个JMS broker,有一个客户连接到其中一个broker。如果这个 broker 失效,那么客户会自动重新连接到其它的broker。在 ActiveMQ中使用 failover:/ 协议来实现这个功能。 ActiveMQ3.x 版本的 reliable:/协议已经变更为 failover:/。如果某个网络上有多个brokers而且客户使用静态发现(使用 Static Transport名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 2 或 Failover Transport)或动态发现(使用Discovery Transport ) ,那么客户可以容易地在某个 broker 失效的情况下切换到其它的brokers。 然而,stand alone brokers并 不了 解其 它 brokers 上 的 consumers ,也 就是 说如 果 某个broker 上 没 有consumers ,那么这个 broker 上的消息可能会因得不到处理而积压起来。目前的解决方案是使用 Network of brokers, 以便在 broker 之间存储转发消息。 ActiveMQ在未来会有更好的特性,用来在客户端处理这个问题。从 ActiveMQ1.1 版本起, ActiveMQ 支持 networks of brokers。它支持分布式的 queues和 topics。一个 broker 会相同对待所有的订阅(subscription) :不管他们是来自本地的客户连接, 还是来自远程 broker,它都会递送有关的消息拷贝到每个订阅。远程broker 得到这个消息拷贝后,会依次把它递送到其内部的本地连接上。有两种方式配置Network of brokers,一种是使用 static transport,如下:Xml 代码 另外一种是使用multicast discovery,如下:Xml 代码 . 9 Network Connector有以下属性:Property Default Value Description name bridge name of the network - for more than one network connector between the same two brokers - use different names dynamicOnly false if true, only forward messages if a consumer is active on the connected broker decreaseNetworkConsumerPriority false decrease the priority for dispatching to a Queue consumer the further away it is (in network hops) from the producer networkTTL 1 the number of brokers in the network that messages and subscriptions 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 3 can pass through conduitSubscriptions true multiple consumers subscribing to the same destination are treated as one consumer by the network excludedDestinations empty destinations matching this list wont be forwarded across the network dynamicallyIncludedDestinations empty destinations that match this list will be forwarded across the network n.b. an empty list means all destinations not in the excluded list will be forwarded staticallyIncludedDestinations empty destinations that match will always be passed across the network - even if no consumers have ever registered an interest duplex false if true, a network connection will be used to both produce AND Consume messages. This is useful for hub and spoke scenarios when the hub is behind a firewall etc. 关于 conduitSubscriptions 属性,这里稍稍说明一下。设想有两个brokers,分别是 brokerA 和 brokerB,它们之间用forwarding bridge 连接。有一个 consumer连接到 brokerA 并订阅 queue:Q.TEST。有两个 consumers连接到 brokerB,也是订阅 queue : Q.TEST。 这三个 consumers有相同的优先级。然后启动一个 producer,它发送了 30 条消息到 brokerA。如果 conduitSubscriptions=true,那么 brokerA 上的 consumer会得到 15 条消息,另外 15 条消息会发送给 brokerB。此时负载并不均衡,因 为此时brokerA 将 brokerB 上 的两个consumers 视 为一个 ;如果conduitSubscriptions=false ,那么每个 consumer上都会收到 10 条消息。以下是关于 NetworkConnector属性的一个例子:Xml 代码 3、Master Slave 在一个网络内运行多个brokers或者 stand alone brokers时存在一个问题, 这名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 4 就是消息在物理上只被一个broker 持有,因此当某个broker 失效,那么你只能等待直到它重启后,这个broker 上的消息才能够被继续发送(如果没有设置持久化,那么在这种情况下,消息将会丢失)。Master Slave 背后的想法是,消息被复制到 slave broker,因此即使 master broker 遇到了像硬件故障之类的错误,你也可以立即切换到slave broker而不丢失任何消息。Master Slave 是目前 ActiveMQ 推荐的高可靠性和容错的解决方案。以下是几种不同的类型:Master Slave Type Requirements Pros Cons Pure Master Slave None No central point of failure Requires manual restart to bring back a failed master and can only support 1 slave Shared File System Master Slave A Shared File system such as a SAN Run as many slaves as required. Automatic recovery of old masters Requires shared file system JDBC Master Slave A Shared database Run as many slaves as required. Automatic recovery of old masters Requires a shared database. Also relatively slow as it cannot use the high performance journal 3.1 Pure Master Slave Pure Master Slave的工作方式如下:? Slave broker 消费 master broker 上所有的消息状态,例如消息、确认和事务状态等。只要 slave broker 连接到了 master broker,它不会(也不被允许)启动任何 network connectors或者 transport connectors ,所以唯一的目的就是复制master broker的状态。? Master broker只有在消息成功被复制到slave broker之后才会响应客户。 例如,客户的 commit 请求只有在 master broker和 slave broker都处理完毕 commit 请求之后才会结束。? 当 master broker失效的时候, slave broker有两种选择,一种是slave broker启动所有的 network connectors和 transport connectors ,这允许客户端切换到slave broker; 另外一种是 slave broker停止。 这种情况下,slave broker只是复制了 master broker的状态。? 客户应该使用 failover transport 并且应该首先尝试连接master broker 。例如:failover:/(tcp:/masterhost:61616,tcp:/slavehost:61616)?randomize=false 设置 randomize 为 false 就可以让客户总是首先尝试连接master broker(slave broker并不会接受任何连接,直到它成为了master broker ) 。Pure Master Slave具有以下限制:? 只能有一个 slave broker连接到 master broker 。? 在因 master broker 失效而导致 slave broker 成为 master之后,之前的master broker只有在当前的 master broker (原 slave broker)停止后才能重新生效。? Master broker 失效后而切换到 slave broker 后,最安全的恢复master broker的方式是人工处理。首先要停止slave broker (这意味着所有的客户也要停止) 。然后把 slave broker的数据目录中所有的数据拷贝到master broker的数据目录中。然后重启 master broker和 slave broker 。Master broker不需要特殊的配置。 Slave broker需要进行以下配置Xml 代码:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 5 . 其中的 masterConnectorURI用于指向 master broker ,shutdownOnMasterFailure用于指定 slave broker在 master broker失效的时候是否需要停止。此外,也可以使用如下配置:Xml 代码 . 需要注意的是,笔者认为ActiveMQ5.0 版本的 Pure Master Slave仍然不够稳定。3.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 配置的一个例子:Xml 代码 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 6 3.3 JDBC Master Slave JDBC Master Slave的工作原理跟 Shared File System Master Slave 类似,只是采用了数据库作为持久化存储。以下是ActiveMQ 配置的一个例子:Xml 代码 . 需要注意的是,如果你使用 MySQL 数据库, 需要首先执行以下三条语句:( Apache官方文档说,此 bug已经被修正,预定在5.1.0 版本上体现)Sql代码1. ALTER TABLE activemq_acks ENGINE = InnoDB; 2. ALTER TABLE activemq_lock ENGINE = InnoDB; 3. ALTER TABLE activemq_msgs ENGINE = InnoDB; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

    注意事项

    本文(2022年activeMQ集群的使用与配置[归 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开