没有合适的资源?快使用搜索试试~ 我知道了~
RocketMQ〖六〗消息的存储,高可用性机制,负载均衡
2 下载量 189 浏览量
2021-01-07
16:25:54
上传
评论
收藏 565KB PDF 举报
温馨提示
RocketMQ〖六〗消息的存储,高可用性机制,负载均衡一. 消息存储1. 存储介质2. 性能对比3. 消息的存储和发送1)消息存储2)消息发送4. 消息存储结构5. 刷盘机制1)同步刷盘2)异步刷盘3)配置二. 高可用性机制1. 消息消费高可用2. 消息发送高可用3. 消息主从复制1)同步复制2)异步复制3)配置4)总结三. 负载均衡1. Producer负载均衡2. Consumer负载均衡1)集群模式2)广播模式制作不易,转载请标注~ 一. 消息存储 分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。 消息生成者发送消息 MQ收到消息,将消息进行持久化,在存储中新增一条记录 返
资源推荐
资源详情
资源评论
RocketMQ〖六〗消息的存储〖六〗消息的存储,高可用性机制高可用性机制,负载均衡负载均衡
RocketMQ〖六〗消息的存储〖六〗消息的存储,高可用性机制高可用性机制,负载均衡负载均衡一. 消息存储1. 存储介质2. 性能对比3. 消息的存储和发送1)消息存储2)消息发送4. 消息存储结构5. 刷盘机制1)同步刷盘2)异
步刷盘3)配置二. 高可用性机制1. 消息消费高可用2. 消息发送高可用3. 消息主从复制1)同步复制2)异步复制3)配置4)总结三. 负载均衡1. Producer负载均衡2. Consumer负载均
衡1)集群模式2)广播模式制作不易,转载请标注~
一一. 消息存储消息存储
分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。
消息生成者发送消息
MQ收到消息,将消息进行持久化,在存储中新增一条记录
返回ACK给生产者
MQ push 消息给对应的消费者,然后等待消费者返回ACK
如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新
push消息,重复执行4、5、6步骤
MQ删除消息
1. 存储介质存储介质
关系型数据库DB
Apache下开源的另外一款MQ—ActiveMQ(默认采用的KahaDB做消息存储)可选用JDBC的方式来做消息持久化,通过简单的xml配置信息即可实现JDBC消息存储。由于,普通关
系型数据库(如Mysql)在单表数据量达到千万级别的情况下,其IO读写性能往往会出现瓶颈。在可靠性方面,该种方案非常依赖DB,如果一旦DB出现故障,则MQ的消息就无法落
盘存储会导致线上故障
文件系统
目前业界较为常用的几款产品(RocketMQ/Kafka/RabbitMQ)均采用的是消息刷盘至所部署虚拟机/物理机的文件系统来做持久化(刷盘一般可以分为异步刷盘和同步刷盘两种模
式)。消息刷盘为消息存储提供了一种高效率、高可靠性和高性能的数据持久化方式。除非部署MQ机器本身或是本地磁盘挂了,否则一般是不会出现无法持久化的故障问题。
2. 性能对比性能对比
文件系统>关系型数据库DB
3. 消息的存储和发送消息的存储和发送
1)消息存储)消息存储
磁盘如果使用得当,磁盘的速度完全可以匹配上网络 的数据传输速度。目前的高性能磁盘,顺序写顺序写速度可以达到600MB/s, 超过了一般网卡的传输速度。但是磁盘随机写随机写的速度只有
大概100KB/s,和顺序写的性能相差6000倍!因为有如此巨大的速度差别,好的消息队列系统会比普通的消息队列系统速度快多个数量级。RocketMQ的消息用顺序写,保证了消息存
储的速度。
2)消息发送)消息发送
Linux操作系统分为【用户态】和【内核态】,文件操作、网络操作需要涉及这两种形态的切换,免不了进行数据复制。
一台服务器 把本机磁盘文件的内容发送到客户端,一般分为两个步骤:
1)read;读取本地文件内容;
2)write;将读取的内容通过网络发送出去。
这两个看似简单的操作,实际进行了4 次数据复制,分别是:
从磁盘复制数据到内核态内存;
从内核态内存复 制到用户态内存;
然后从用户态 内存复制到网络驱动的内核态内存;
最后是从网络驱动的内核态内存复 制到网卡中进行传输。
通过使用mmap的方式,可以省去向用户态的内存复制,提高速度。这种机制在Java中是通过MappedByteBuffer实现的
RocketMQ充分利用了上述特性,也就是所谓的“零拷贝”技术,提高消息存盘和网络发送的速度。
这里需要注意的是,采用MappedByteBuffer这种内存映射的方式有几个限制,其中之一是一次只能映射1.5~2G 的文件至用户态的虚拟内存,这也是为何RocketMQ默认设置单个
CommitLog日志数据文件为1G的原因了
4. 消息存储结构消息存储结构
资源评论
weixin_38559569
- 粉丝: 3
- 资源: 948
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微信小程序你画我猜程序
- 基于Python电影数据可视化分析系统.zip(源码 + 文档 + PPT)
- 使用LabVIEW2019x64的IMAQdx调用工业相机采图(二)的附加代码
- 更新的yolov5检测人脸和关键点,只依赖opencv库就可以运行,程序包含C++和Python两个版本的.zip
- 易于使用的微调 YOLOv8 模型 .zip
- MATLAB读取ros2bag【函数+示例】
- 基于arcgis土地利用混合度操作视频
- 无线安装和测试移动应用程序(TestFlight 替代方案).zip
- 中国科学院大学研究生学术英语读写教程 Unit1-Unit10 原文及其翻译 word版本
- 电脑udp关机程序,电脑udp关机程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功