当前位置: 首页 > article >正文

RocketMQ 的 Topic 和消息队列MessageQueue信息,是怎么分布到Broker的?怎么负载均衡到Broker的?

目录

1. Topic 和 MessageQueue 的基本概念

1.1 Topic

1.2 MessageQueue

2. Topic 和 MessageQueue 的分布

2.1 Topic 的创建

2.2 MessageQueue 分配到 Broker

2.3 分布规则

3. 负载均衡机制

3.1 Producer 的负载均衡

3.2 Consumer 的负载均衡

3.3 Broker 的负载均衡

4. 动态扩展与容错

4.1 动态扩展

4.2 容错机制

5. 总结


在 RocketMQ 中,Topic 和 MessageQueue 的分布以及负载均衡是 RocketMQ 实现高并发、高可用消息传递的核心机制之一。以下是 Topic 和 MessageQueue 如何分布到 Broker,以及如何实现负载均衡的详细说明:


1. Topic 和 MessageQueue 的基本概念

1.1 Topic
  • Topic 是消息的逻辑分类,生产者将消息发送到特定的 Topic,消费者从 Topic 订阅消息。

  • 一个 Topic 可以被多个生产者发送消息,也可以被多个消费者订阅。

1.2 MessageQueue
  • MessageQueue 是 Topic 的物理分区,一个 Topic 可以分为多个 MessageQueue。

  • 每个 MessageQueue 是一个有序的消息队列,消息在 MessageQueue 中按照顺序存储和消费。

  • MessageQueue 是 RocketMQ 实现并行消费和负载均衡的基础。


2. Topic 和 MessageQueue 的分布

2.1 Topic 的创建
  • 当创建一个 Topic 时,需要指定该 Topic 的 MessageQueue 数量。

  • 例如,可以创建一个名为 OrderTopic 的 Topic,并指定其包含 8 个 MessageQueue。

2.2 MessageQueue 分配到 Broker
  • RocketMQ 会将 Topic 的 MessageQueue 均匀分布到集群中的多个 Broker 上。

  • 例如:

    • 如果有 4 个 Broker,8 个 MessageQueue,那么每个 Broker 会分配 2 个 MessageQueue。

    • 分配规则是均匀分布的,确保每个 Broker 的负载相对均衡。

2.3 分布规则
  • RocketMQ 默认采用轮询分配的方式将 MessageQueue 分布到 Broker。


http://www.kler.cn/a/518487.html

相关文章:

  • tmux 介绍与使用
  • MongoDB 备份与恢复综述
  • doris:MySQL Load
  • SpringBoot3+Vue3开发学生选课管理系统
  • 自然语言处理——从原理、经典模型到应用
  • 头像生成小程序搭建(免费分享)
  • 数据结构——二叉树——堆(1)
  • 【后端开发】字节跳动青训营之性能分析工具pprof
  • 正则表达式以及Qt中的使用
  • 为什么UI导入png图会出现白边
  • Zbrush导入笔刷
  • Android中Service在新进程中的启动流程
  • “AI视觉贴装系统:智能贴装,精准无忧
  • 《论文翻译》KIMI K1.5:用大语言模型扩展强化学习
  • 保存复合型数据到h5文件
  • ptp同步时钟、ptp网络时间服务器、ptp主时钟、ptp从时钟、ptp精密同步时钟
  • 15 分布式锁和分布式session
  • ElasticSearch JavaRestClient查询之快速入门
  • antdesignvue统计数据源条数、计算某列合计值、小数计算不精确多了很多小数位
  • 媒体新闻发稿要求有哪些?什么类型的稿件更好通过?
  • navicat无法连接虚拟机的docker中的mysql
  • 理解C++编译时类型转换符:static_cast
  • 系统思考—复杂问题的根源分析
  • 技术之翼,创作之心
  • Java设计模式 十 装饰模式 (Decorator Pattern)
  • 2025,“鱿鱼游戏”闯入AI赛道