rocketmq架构简述

rocketmq架构简述,第1张

rocketmq架构简述

1、nameServer类似kafka中的zk。zk有主从,同步数据。nameserver主要维护路由信息,相互之间不通信,性能提高很多;意味着NameServer中任意的节点挂了,只要有一台服务节点正常,整个路由服务就不会有影响

2、存储

所有的消息是存储在CommitLog文件中,不区分topic;

consumerQueue 记录的是基于topic的消息索引文件,是有序的。

indexFile记录的是基于key或时间区间的消息的映射文件,也是有序的。

3、broker

与kafka的broker概念类似,里面包含多个topic,每个topic有多个queue,类似kafka的partition,不过kafka可以指定queue的数量,是一主多从的模式,而rockemq中的queue不能指定数量,并且每个broker保存的数据相同,保证一个broken宕机后不影响mq使用。

4、刷盘机制

1. 同步刷盘

消息持久化到磁盘会给生产者返回ack,可以保证消息可靠,但是会影响性能。


2. 异步刷盘

消息写入page cache 就返回ack,提高性能和吞吐量,但会有消息丢失的问题。

RocketMQ 文件保存72 小时,在凌晨4 点将过期文件删除。
RocketMQ 中queue 文件的优缺点:
优点: 只存储少量的数据,更加轻量化。
缺点:写入是顺序的,读取是随机的。先读consumeQueue,再度commitLog,降低读取效率。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5688395.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存