RocketMQ 集群部署模式 理论介绍
RocketMQ 集群部署模式
- 如上图所示, RocketMQ的部署结构有以下特点:
- Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。
- Broker 部署相对复杂,Broker 分为 Master 与 Slave,一个 Master(主人) 可以对应多个 Slave(奴隶),但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的 BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个,每个Broker与Name Server集群中的所有节点建立长连接,定时注册Topic 信息到所有 Name Server。
- Producer 与 Name Server 集群中的其中一个节点(随机选择)建立长连接,定期从Name Server取Topic路由信息,并向提供 Topic 服务的 Master 建立长连接,且定时向 Master 发送心跳。Producer完全无状态,可集群部署。
- Consumer 与 Name Server 集群中的其中一个节点(随机选择)建立长连接,定期从Name Server取Topic路由信息,并向提供 Topic 服务的 Master、Slave 建立长连接,且定时向 Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。
单 master 模式
- 也就是只有一个 master 节点,称不上是集群,一旦这个 master 节点宕机,那么整个服务就不可用,适合个人学习使用。
多 master 模式
- 多个 master 节点组成集群,单个 master 节点宕机或者重启对应用没有影响。
- 优点:所有模式中性能最高
- 缺点:单个 master 节点宕机期间,未被消费的消息在节点恢复之前不可用,消息的实时性就受到影响。
- 注意:使用同步刷盘可以保证消息不丢失,同时 Topic 相对应的 queue 应该分布在集群中各个节点,而不是只在某各节点上,否则,该节点宕机会对订阅该 topic 的应用造成影响。
多 master 多 slave 异步复制模式
- 在多 master 模式的基础上,每个 master 节点都有至少一个对应的 slave。
- master 节点可读可写,但是 slave 只能读不能写,类似于 mysql 的主从模式。
- 优点: 在 master 宕机时,消费者可以从 slave 读取消息,消息的实时性不会受影响,性能几乎和多 master 一样。
- 缺点:使用异步复制的同步方式有可能会有消息丢失的问题。
多 master 多 slave 同步双写模式
- 同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步方式。
- 优点:同步双写的同步模式能保证数据不丢失。
- 缺点:发送单个消息 RT 会略长,性能相比异步复制低10%左右。
- 刷盘策略:同步刷盘和异步刷盘(指的是节点自身数据是同步还是异步存储)
- 同步方式:同步双写和异步复制(指的一组 master 和 slave 之间数据的同步)
- 注意:要保证数据可靠,需采用同步刷盘和同步双写的方式,但性能会较其他方式低。
RocketMQ 集群部署模式 理论介绍相关推荐
- RocketMQ集群部署记录
RocketMQ集群部署记录 #引用 https://cloud.tencent.com/developer/article/1147765 一.RocketMQ基础知识介绍 Apache Ro ...
- Centos6下RocketMQ集群部署记录
一.RocketMQ基础知识介绍 Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...
- Nacos 集群部署模式最佳实践
作者 | kiritomoe 来源 | https://mp.weixin.qq.com/s/sSTY5BivxrH4wR2-dNMkzw 1 前言 Nacos 支持两种部署模式:单机模式和集群模式. ...
- 技术干货实战(4)- 分布式集群部署模式下Nginx如何实现用户登录Session共享(含详细配置与代码实战)
原文链接:技术干货实战(4)- 分布式集群部署模式下Nginx如何实现用户登录Session共享(含详细配置与代码实战) 最近有小伙伴催更,让debug多写点技术干货,以便多学习.巩固一些技能:没办法 ...
- RocketMQ集群部署方案(DLedger)
RocketMQ集群部署方案(DLedger) 一.基本配置 1.准备三台虚拟机,root密码 root ;IP地址: 192.168.xxx.xxx worker1 192.168.xxx.xxx ...
- MongoDB集群部署模式
MongoDB 有三种集群部署模式,分别为主从复制(Master-Slaver).副本集(Replica Set)和分片(Sharding)模式. Master-Slaver 是一种主从副本的模式,目 ...
- 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP
一.Hadoop集群部署模式 Hadoop的安装部署的模式一共有三种: 独立模式(本地模式) standalone 默认的模式,无需运行任何守护进程(daemon),所有程序都在单个JVM上执行.由于 ...
- Consul集群部署模式server+client
Consul是一个服务网格,它提供了一个功能齐全的控制平面,主要特点是:服务发现.健康检查.键值存储.安全服务通信.多数据中心. 在本场 Chat 中,会讲到如下内容:1.Consul核心概念2.Co ...
- (三)RocketMQ集群部署实践
2019独角兽企业重金招聘Python工程师标准>>> 全篇参照–<MyRocketMQ集群部署实战-双master-双slave-同步双写-异步刷盘(7台机器) - tant ...
- 从生产故障解锁RocketMQ集群部署的最佳实践
1.故障描述 RocketMQ 集群采取的部署架构为2主2从,其部署架构如下图所示: 其部署架构中一个非常明显的特点是一台物理机上分别部署了 nameserver,broker 两个进程. 其中一台机 ...
最新文章
- 一次redis连接配置修改引发的redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.异常
- pcap文件生成metadata——使用tshark解析tcpdump的pcap包
- SQL 获取数据IP,ServerName,ClientIPAddress
- 【结论题(QAQ)】SSL新年欢乐赛暨BPM退役赛 A 送分题(luogu U102372)
- mysql rpm 启动_MySQL安装(rpm)和启动配置
- SpringCloud集成Security安全(Config配置中心)
- 时域频域与傅立叶变换
- Java 换行和回车
- 毕业5年跳槽24次,为什么这届95后换工作越来越勤?
- java的argv_Java:使用org.apache.commons.cli解析传入参数args,该包会协助解析argv参数...
- 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第三章
- 【Axure原型分享】自动编号的中继器表格
- goldwave教程分享:用GoldWave进行音量调节
- Spring集成activiti
- 公告栏模板php代码,[免插件]为wordpress主题怎样添加滚动公告栏功能
- Exception: Gradle install not valid ___APK打包报错
- 如何解决merge conflict的方法
- JAVA SE 13快速安装
- python生成测试数据_Python基于Hypothesis测试库生成测试数据
- linux内核函数 ffs,linux内核中的宏ffs(x)【转】
热门文章
- oracle rman optimization,关于RMAN中的优化(Optimization)
- 拓端tecdat|Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
- kettle使用经验01
- 计算机操作系统笔记(一)
- 优酷java贴吧_[杭州] [优酷] 阿里 Java 服务端开发招人啦-P7\P6+
- 三种激活函数以及它们的优缺点
- 2018谷歌学术影响因子发布:CVPR排名泛AI领域第一
- 近6年被引用次数最多的深度学习论文top100(附下载地址)
- python实现对指定字符串补足固定长度倍数截断输出
- 分布排序(distribution sorts)算法大串讲