RocketMQ架构
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架构相关推荐
- RocketMQ架构模块解析
2019独角兽企业重金招聘Python工程师标准>>> RocketMQ是一个分布式开放消息中间件,底层基于队列模型来实现消息收发功能.RocketMQ集群中包含4个模块:Names ...
- RocketMQ架构原理解析(一):整体架构
一.概述 RocketMQ作为一个apache的顶级项目,拥有将近16K的star,它稳定的系统及强悍的性能,无疑在国内已经成为了企业消息队列的首选.接下来的一段时间,鄙人准备出一系列文章,从源码出发 ...
- 《RocketMQ技术内幕:RocketMQ架构设计与实现原理》一导读...
内容介绍 本书由RocketMQ社区早期的布道者和技术专家撰写,Apache RocketMQ创始人/Linux OpenMessaging创始人兼主席/Alibaba Messaging开源技术负责 ...
- RocketMQ-初体验RocketMQ(05)_RocketMQ架构解读
文章目录 Rocketmq整体架构 namesrv broker producer & consumer 通信方式 Rocketmq整体架构 RocketMQ-初体验RocketMQ(01)_ ...
- RocketMQ初步应用架构理论
RocketMQ初步应用架构理论 写给RocketMQ架构应用入门,内容涉及它的设计机理以及推到出来的应用注意事项,入门人员请看. 稍微涉及技术细节,留以我设计中间件时参考,将来整理深度文档时会抽取走 ...
- rocketMQ基本架构简介
1.RocketMQ 简介: RocketMQ前身是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能.高可靠.高实时.分布式特点. 2.Roc ...
- rocketmq 组监听_最全的RocketMQ学习指南,程序员必备的中间件技能
一.简介 RocketMq是阿里开发出来的一个消息中间件,后捐献给Apache.官网上是这样介绍的: Apache RocketMQ™ is a unified messaging engine, l ...
- 深入剖析 RocketMQ 源码 - 消息存储模块
作者:vivo互联网服务器团队-Zhang Zhenglin 一.简介 RocketMQ 是阿里巴巴开源的分布式消息中间件,它借鉴了 Kafka 实现,支持消息订阅与发布.顺序消息.事务消息.定时消息 ...
- 深入剖析RocketMQ源码-NameServer
作者:vivo互联网服务器团队-Ye Wenhao 一.RocketMQ架构简介 1.1 逻辑部署图 (图片来自网络) 1.2 核心组件说明 通过上图可以看到,RocketMQ的核心组件主要包括4个, ...
最新文章
- Thrift架构与使用方法
- plsql连接mysql_使用PLSQL工具连接远程Oracle
- 智力+贪心的过河问题
- 。。。剑指Offer之——反转链表。。。
- 切换回Chrome上的上次标签及打开设置快捷键
- centos oracle 修改监听服务名_Oracle-Oracle DB、监听和oem开机启动
- 利用Java实现简单的日报管理
- PyQt窗口设计之Qt Designer
- 第三方登陆之微博登录
- 可能是全网唯一Elastic/Kibana认证考试报名还有优惠的地方
- 下列各命令中可以在计算机屏幕上,下列各命令中,可以在计算机屏幕上放映演示文稿的是()。...
- Manjaro-architect 安装指南
- [NOI2010] 航空管制 (构反图+拓扑)
- 爱快软路由+panabit上网行为管理
- 特斯拉充电异常甩锅国家电网,被“打脸”后致歉
- Topic ods_base_db not present in metadata after 60000 ms.
- JAVA基础-06.集合-14.【List、Set】
- vmware_无法连接虚拟机vmx提前退出
- android webview打开相册,Android webView不能响应h5打开相册的操作
- 下载单词英语单词_单词如何塑造体验
热门文章
- macbook air可以运行c语言吗,新 MacBook Air 现场上手:它让 MacBook 变得有点尴尬了...
- LeetCode:Rotate Image
- CentOS 6.5上安装Zabbix 2.4.8
- JS中setInterval、setTimeout不能传递带参数的函数的解决方法
- UVA 10534 Wavio Sequence DP LIS
- Python: try finally 与 上下文管理器简介
- P2475 [SCOI2008]斜堆(递归模拟)
- 高质量 Node.js 微服务的编写和部署
- 如何使用Database2Sharp进行代码生成
- ISA Server 2004 企业 IT 常见应用速查