Java充电社
专辑
博文
联系我
本人继续续收门徒,亲手指导
RocketMQ专题
-> 安装篇-集群搭建理论
1、MQ概述
2、RocketMQ概述
3、基本概念
4、系统架构
5、安装篇-单机安装
6、安装篇-dashboard控制台的安装与启动
7、安装篇-集群搭建理论
8、安装篇-磁盘阵列RAID(补充)
9、安装篇-集群搭建实践 (多主多从)
10、原理篇-消息的生产
11、原理篇-消息存储
12、原理篇-indexfile
13、原理篇-消息消费
14、原理篇-订阅关系的一致性
15、原理篇-offset管理
16、原理篇-消息的清理
17、原理篇-消费幂等
18、原理篇-消息堆积与消费延迟
19、应用篇-普通消息
20、应用篇-顺序消息
21、应用篇-延时消息
22、应用篇-事务消息
23、应用篇-批量消息
24、应用篇-消息过滤
25、应用篇-消息发送重试
26、应用篇-消息消费重试机制
27、应用篇-死信队列
28、高级功能汇总
29、消息发送案例汇总
30、RocketMQ整合SpringBoot
上一篇:安装篇-dashboard控制台的安装与启动
下一篇:安装篇-磁盘阵列RAID(补充)
<div style="display:none"></div> ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/355/b0681902-c86e-4b63-afbf-c85be86d2b78.png) ## 1、数据复制与刷盘策略 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/355/3640021d-7aec-4c8b-bd1f-34449b2bcd58.png) ### 1.1、复制策略 复制策略是Broker的Master与Slave间的数据同步方式。分为同步复制与异步复制: - 同步复制:消息写入master后,master会等待slave同步数据成功后才向producer返回成功ACK - 异步复制:消息写入master后,master立即向producer返回成功ACK,无需等待slave同步数据成功 > 异步复制策略会降低系统的写入延迟,*RT*变小,提高了系统的吞吐量 ### 1.2、刷盘策略 刷盘策略指的是broker中消息的落盘方式,即消息发送到broker内存后消息持久化到磁盘的方式。分为同步刷盘与异步刷盘: - 同步刷盘:当消息持久化到broker的磁盘后才算是消息写入成功。 - 异步刷盘:当消息写入到broker的内存后即表示消息写入成功,无需等待消息持久化到磁盘。 > 1)异步刷盘策略会降低系统的写入延迟,RT变小,提高了系统的吞吐量 > > 2)消息写入到Broker的内存,一般是写入到了PageCache > > 3)对于异步 刷盘策略,消息会写入到PageCache后立即返回成功ACK。但并不会立即做落盘操作,而是当PageCache到达一定量时会自动进行落盘。 ## 2、Broker集群模式 根据Broker集群中各个节点间关系的不同,Broker集群可以分为以下几类: ### 2.1、单Master 只有一个broker(其本质上就不能称为集群)。这种方式也只能是在测试时使用,生产环境下不能使用,因为存在单点问题。 ### 2.2、多Master broker集群仅由多个master构成,不存在Slave。同一Topic的各个Queue会平均分布在各个master节点上。 - 优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢),性能最高; - 缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅(不可消费),消息实时性会受到影响。 以上优点的前提是,这些*Master*都配置了*RAID*磁盘阵列。如果没有配置,一旦出现某*Master*宕机,则会发生大量消息丢失的情况。 ### 2.3、多Master多Slave模式-异步复制 broker集群由多个master构成,每个master又配置了多个slave(在配置了RAID磁盘阵列的情况下,一个master一般配置一个slave即可)。master与slave的关系是主备关系,即master负责处理消息的读写请求,而slave仅负责消息的备份与master宕机后的角色切换。 异步复制即前面所讲的复制策略中的异步复制策略,即消息写入master成功后,master立即向producer返回成功ACK,无需等待slave同步数据成功。 该模式的最大特点之一是,当master宕机后slave能够自动切换为master。不过由于slave从master的同步具有短暂的延迟(毫秒级),所以当master宕机后,这种异步复制方式可能会存在少量消息的丢失问题。 *Slave*从*Master*同步的延迟越短,其可能丢失的消息就越少对于*Master*的*RAID*磁盘阵列,若使用的也是异步复制策略,同样也存在延迟问题,同样也可能会丢失消息。但*RAID*阵列的秘诀是微秒级的(因为是由硬盘支持的),所以其丢失的数据量会更少。 ### 2.4、多Master多Slave模式-同步双写 该模式是多Master多Slave模式的同步复制实现。所谓同步双写,指的是消息写入master成功后,master会等待slave同步数据成功后才向producer返回成功ACK,即master与slave都要写入成功后才会返回成功ACK,也即双写。 该模式与异步复制模式相比,优点是消息的安全性更高,不存在消息丢失的情况。但单个消息的RT略高,从而导致性能要略低(大约低10%)。 该模式存在一个大的问题:对于目前的版本,Master宕机后,Slave不会自动切换到Master。 ## 3、最佳实践 一般会为Master配置RAID10磁盘阵列,然后再为其配置一个Slave。即利用了RAID10磁盘阵列的高效、安全性,又解决了可能会影响订阅的问题。 1)RAID磁盘阵列的效率要高于Master-Slave集群。因为RAID是硬件支持的。也正因为如此,所以RAID阵列的搭建成本较高。 2)多Master+RAID阵列,与多Master多Slave集群的区别是什么? 多Master+RAID阵列,其仅仅可以保证数据不丢失,即不影响消息写入,但其可能会影响到消息的订阅。但其执行效率要远高于 多Master多Slave集群 多Master多Slave集群,其不仅可以保证数据不丢失,也不会影响消息写入。其运行效率要低于 多Master+RAID阵列 。 <a style="display:none" target="_blank" href="https://mp.weixin.qq.com/s/_S1DD2JADnXvpexxaBwLLg" style="color:red; font-size:20px; font-weight:bold">继续收门徒,亲手带,月薪 4W 以下的可以来找我</a> ## 最新资料 1. <a href="https://mp.weixin.qq.com/s?__biz=MzkzOTI3Nzc0Mg==&mid=2247484964&idx=2&sn=c81bce2f26015ee0f9632ddc6c67df03&scene=21#wechat_redirect" target="_blank">尚硅谷 Java 学科全套教程(总 207.77GB)</a> 2. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484192&idx=1&sn=505f2faaa4cc911f553850667749bcbb&scene=21#wechat_redirect" target="_blank">2021 最新版 Java 微服务学习线路图 + 视频</a> 3. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484573&idx=1&sn=7f3d83892186c16c57bc0b99f03f1ffd&scene=21#wechat_redirect" target="_blank">阿里技术大佬整理的《Spring 学习笔记.pdf》</a> 4. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484544&idx=2&sn=c1dfe907cfaa5b9ae8e66fc247ccbe84&scene=21#wechat_redirect" target="_blank">阿里大佬的《MySQL 学习笔记高清.pdf》</a> 5. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485167&idx=1&sn=48d75c8e93e748235a3547f34921dfb7&scene=21#wechat_redirect" target="_blank">2021 版 java 高并发常见面试题汇总.pdf</a> 6. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485664&idx=1&sn=435f9f515a8f881642820d7790ad20ce&scene=21#wechat_redirect" target="_blank">Idea 快捷键大全.pdf</a> ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/1/2883e86e-3eff-404a-8943-0066e5e2b454.png)
#custom-toc-container