开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段):负载均衡-消息生产者】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/704/detail/12453
负载均衡-消息生产者
producer 负载均衡
RocketMQ 的负载平衡主要分两方面,第一方面是生产者的负载平衡,第二方面是 consumer 消费者的负载平衡。
生产者在发送消息的时候,如何实现负载平衡?主要是基于 topic 的路由,通过主题的路由来实现。发送消息最终会发送到消息队列当中,那么一个 topic 可以关联多个消息队列,broker 当中可以有多个队列。以此来看,第一次发送消息,其负载平衡的策略是轮选的方式。第一次发送到第一个队列,第二次发送到第二个队列,第三次发送到第三个队列。第四次发送,如果两个 broker 均关联到 topic 主题则发送到如图位置,依次所示。两个 broker 均负载到生产者发送消息的压力。当发送第七个时,再次返回到第一个的位置开始,通过该机制实现生产者的负载平衡。这个过程在 rocketMQ 内部就已经实现了,对于我们而言,只需要去发送,不需要去管理其内部如何运行,其内部机制就是上述所说的进行。本节的关键点在于:默认会通过轮询的方式将消息发送给不同的 messageQueue , messageQueue 又可以落在不同的 broker 当中,以此实现生产者的消费平衡。