栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

activeMQ默认负载和负载均衡

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

activeMQ默认负载和负载均衡

默认负载 场景说明
  • 如下图,假设接收端 1、2、3 都订阅了队列TEST.FOO,发送端连接到 MQ 1 并发送 了 12 个消息到队列TEST.FOO。

  • 默认情况下管道订阅是生效的,所以 MQ 1 有两个订阅。

  • 来自接收端 1 和 MQ 2,然后将消息交替发送给接收端 1 和 MQ 2。

  • 如果接收端 1 和 MQ 2 接收速度相同,将会各收到 6 个消息。

  • MQ 2 有 2 个消费者:接收端 2 和接收端 3,交替发送消息给它们,

  • 如果接收端 2、接收端3 接收速度相同,将会各收到3 个消息。 最终接收端 1、接收端 2、接收端 3 收到消息为 6、3、3,

  • 并不符合负载均衡原则,接收端1 处理了 2 倍的消息。

配置文件
  1. 使用kahadb数据库,注掉MySQL连接信息
  2. 在broker标签内添加brokerId,修改brokerName名字(保证唯一)
  

3.添加networkConnectors标签,name为其他集群中broker标签内的brokerName值,uri为其他集群的地址.


		
		

conduitSubscriptions=“true”----->设置为负载均衡(默认为负载均衡)

场景使用

设置完xml配置后,先运行三个消费者在运行生产者。

负载均衡

在xml里networkConnectors设置conduitSubscriptions=“false” 。

  • 概述

下图显示了禁止管道订阅后,队列消息如何分发给消费者。假设接收端 1、接收端 2、接收端 3 都订阅了队列 TEST.FOO,发送端连接到 MQ 1 并发送了 12 个消息到队列TEST.FOO。禁 止管道订阅后,MQ 1 可以看到 MQ 2 上的所有订阅和接收端 1 的订阅,然后交 替分发消息,假设消费者接收消息速度相同,接收端 1 将收到 4 个消息,MQ 2 将收到 8 个消息。MQ 2 有两个订阅,接收端 2、接收端 3,然后交替分发消息,假设 C2、C3 接收 端 2、接收端 3 速度相同,它们将各收到4 个消息。最终,接收端 1、接收端 2、接收端3 收到是消 息为 4、4、4,达到了负载均衡。

conduitSubscriptions="false"  //设置为负载均衡 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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