RocketMQ系列4——负载均衡

        RocketMQ中的负载均衡主要分为Producer端发送消息时候的负载均衡和Consumer端订阅消息的负载均衡。

一、Producer负载均衡

        Producer发送消息时,需要根据消息的Topic从本地缓存的TopicPublishInfoTable获取路由信息。拿到路由信息默认情况下使用selectOneMessageQueue()方法从TopicPublishInfo中的messageQueueList中随机选择一个队列(MessageQueue)进行发送消息,采用递增取模的方式往不同的MessageQueue上面发送消息,达到平均落在不同的queue上的目的。消息分散在不同的Broker上面。生产者在发送消息时候也可以指定MessageQueueSelector(队列选择器),MessageQueueSelector包含SelectMessageQueueByHash(通过 hash 取模选择队列),SelectMessageQueueByMachineRoom(机房选择队列需要自己实现),SelectMessageQueueByRandom(随机分配)。默认是轮询进行发送消息。也可以将这个对象的消息发送到指定MessageQueue上面,保证消息局部有序。

发送顺序消息消费者可以顺序消费:一个topic下有多个队列,通过hash取模,将同一个订单消息发到同一个队列中就实现了顺序消息。

示例:订单号做了一个取模运算在放倒selector中,selector保证同一个模会投递到一个queue。相同订单号的--->有相

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值