RocketMQ架构


生产者


注册中心(NameServer)中记录着所有Broker集群的信息生产者从NS中通过负载均衡机制获取某一个Broker集群生产者往这个Broker集群的指定队列中投递消息

投递的过程支持快速失败和低延迟

消费者


支持两种模式a、消费者从队列中pull 拉取消息b、队列给消费者push 推送消息

提供消息实时订阅机制

集群模式


一个消息只能被集群中的一个消费者消费

广播模式


集群中的每个消费者都会消费

NameServer

支持Broker动态注册与发现


a、每个NameServer将保存关于Broker集群的整个路由信息和用于客户端查询的队列信息b、ns各实例间相互不进行信息通讯 做灾备使用

BrokerServer

主要功能


重要子模块


路由模块

负责处理客户端请求

客户端模块

负责管理生产者/消费者和维护topic订阅消息

存储服务

提供API接口处理消息存储到物理硬盘和查询功能

高可用服务

提供Master Broker 和 Slave Broker之间的数据同步功能

a、Broker分为Master与Slaveb、Master和Slave是1对多的关系c、Master和Slave对应关系通过指定相同的BrokerName;BorkerId=0表示Master,BorkerId=1表示Slaved、Master也可以部署多个e、brokerId=1参与消息的读负载

每个Broker与NameServer集群中的所有节点建立长连接定时注册Topic信息到所有NameServer

索引服务


根据特定的Message key对投递到Broker的消息进行索引服务以提供消息的快速查询

部署架构

组件启动流程


生产者


Producer与NameServer集群中的其中一个节点(随机选择)建立长连接定期从NameServer获取Topic路由信息

生产者向提供Topic 服务的Master建立长连接且定时向Master发送心跳

消费者


Consumer与NameServer集群中的其中一个节点(随机选择)建立长连接定期从NameServer获取Topic路由信息

a、消费者向提供Topic服务的Master、Slave建立长连接且定时向Master、Slave发送心跳b、Consumer既可以从Master订阅消息,也可以从Slave订阅消息

集群工作流程


服务注册

a、启动NameServer,NameServer起来后监听端口等待Broker、Producer、Consumer连上来相当于一个路由控制中心

b、Broker启动跟所有的NameServer保持长连接定时发送心跳包心跳包中包含当前Broker信息(IP+端口等)以及存储所有Topic信息注册成功后NameServer集群中就有Topic跟Broker的映射关系

创建topic

收发消息前先创建Topic创建Topic时需要指定该Topic要存储在哪些Broker上也可以在发送消息时自动创建Topic

生产消息

Producer发送消息启动时先跟NameServer集群中的其中一台建立长连接并从NameServer中获取当前发送的Topic存在哪些Broker上轮询从队列列表中选择一个队列然后与队列所在的Broker建立长连接从而向Broker发消息

消费消息

Consumer跟Producer类似跟其中一台NameServer建立长连接获取当前订阅Topic存在哪些Broker上然后直接跟Broker建立连接通道开始消费消息

RocketMQ架构相关推荐

  1. RocketMQ架构模块解析

    2019独角兽企业重金招聘Python工程师标准>>> RocketMQ是一个分布式开放消息中间件,底层基于队列模型来实现消息收发功能.RocketMQ集群中包含4个模块:Names ...

  2. RocketMQ架构原理解析(一):整体架构

    一.概述 RocketMQ作为一个apache的顶级项目,拥有将近16K的star,它稳定的系统及强悍的性能,无疑在国内已经成为了企业消息队列的首选.接下来的一段时间,鄙人准备出一系列文章,从源码出发 ...

  3. 《RocketMQ技术内幕:RocketMQ架构设计与实现原理》一导读...

    内容介绍 本书由RocketMQ社区早期的布道者和技术专家撰写,Apache RocketMQ创始人/Linux OpenMessaging创始人兼主席/Alibaba Messaging开源技术负责 ...

  4. RocketMQ-初体验RocketMQ(05)_RocketMQ架构解读

    文章目录 Rocketmq整体架构 namesrv broker producer & consumer 通信方式 Rocketmq整体架构 RocketMQ-初体验RocketMQ(01)_ ...

  5. RocketMQ初步应用架构理论

    RocketMQ初步应用架构理论 写给RocketMQ架构应用入门,内容涉及它的设计机理以及推到出来的应用注意事项,入门人员请看. 稍微涉及技术细节,留以我设计中间件时参考,将来整理深度文档时会抽取走 ...

  6. rocketMQ基本架构简介

    1.RocketMQ 简介: RocketMQ前身是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能.高可靠.高实时.分布式特点. 2.Roc ...

  7. rocketmq 组监听_最全的RocketMQ学习指南,程序员必备的中间件技能

    一.简介 RocketMq是阿里开发出来的一个消息中间件,后捐献给Apache.官网上是这样介绍的: Apache RocketMQ™ is a unified messaging engine, l ...

  8. 深入剖析 RocketMQ 源码 - 消息存储模块

    作者:vivo互联网服务器团队-Zhang Zhenglin 一.简介 RocketMQ 是阿里巴巴开源的分布式消息中间件,它借鉴了 Kafka 实现,支持消息订阅与发布.顺序消息.事务消息.定时消息 ...

  9. 深入剖析RocketMQ源码-NameServer

    作者:vivo互联网服务器团队-Ye Wenhao 一.RocketMQ架构简介 1.1 逻辑部署图 (图片来自网络) 1.2 核心组件说明 通过上图可以看到,RocketMQ的核心组件主要包括4个, ...

最新文章

  1. Thrift架构与使用方法
  2. plsql连接mysql_使用PLSQL工具连接远程Oracle
  3. 智力+贪心的过河问题
  4. 。。。剑指Offer之——反转链表。。。
  5. 切换回Chrome上的上次标签及打开设置快捷键
  6. centos oracle 修改监听服务名_Oracle-Oracle DB、监听和oem开机启动
  7. 利用Java实现简单的日报管理
  8. PyQt窗口设计之Qt Designer
  9. 第三方登陆之微博登录
  10. 可能是全网唯一Elastic/Kibana认证考试报名还有优惠的地方
  11. 下列各命令中可以在计算机屏幕上,下列各命令中,可以在计算机屏幕上放映演示文稿的是()。...
  12. Manjaro-architect 安装指南
  13. [NOI2010] 航空管制 (构反图+拓扑)
  14. 爱快软路由+panabit上网行为管理
  15. 特斯拉充电异常甩锅国家电网,被“打脸”后致歉
  16. Topic ods_base_db not present in metadata after 60000 ms.
  17. JAVA基础-06.集合-14.【List、Set】
  18. vmware_无法连接虚拟机vmx提前退出
  19. android webview打开相册,Android webView不能响应h5打开相册的操作
  20. 下载单词英语单词_单词如何塑造体验

热门文章

  1. macbook air可以运行c语言吗,新 MacBook Air 现场上手:它让 MacBook 变得有点尴尬了...
  2. LeetCode:Rotate Image
  3. CentOS 6.5上安装Zabbix 2.4.8
  4. JS中setInterval、setTimeout不能传递带参数的函数的解决方法
  5. UVA 10534 Wavio Sequence DP LIS
  6. Python: try finally 与 上下文管理器简介
  7. P2475 [SCOI2008]斜堆(递归模拟)
  8. 高质量 Node.js 微服务的编写和部署
  9. 如何使用Database2Sharp进行代码生成
  10. ISA Server 2004 企业 IT 常见应用速查