Rocketmq知识点整理(一)

自研NameServer

摒弃业界常用的Zookeeper,使用自研的NameServer实现元数据的管理(Topic路由信息等)。

从实际场景出发,topic路由在集群中无需保持强一致性,仅需保持最终一致性,且能够容忍分钟级别的不一致,因此,rockermq自研的NameServer摒弃了集群之间的相互通信,而是相互独立,不仅极大的降低了NameServer实现的复杂度,降低了对网络的要求,同时也因此,性能相比Zookeeper有了极大地提升。

NameServer集群节点间相互独立无通信

高效的IO存储机制

为了追求消息发送的高吞吐量,rocketmq引入了内存映射机制。rocketmq以文件组的方式,存储消息的存储文件,每个文件组内的单个文件大小固定,所有Topic下的消息全部基于顺序写,极大的提高了消息的写性能。

rocketmq顺序写文件

为了消息的消费和查找,rocketmq还引入了消息消费队列文件索引文件

为了避免消息不断累积,rocketmq引入了消息文件过期机制(默认保留3天)以及文件存储空间报警机制

消费者幂等消费消息

rocketmq通过消息消费确认机制(ACK)确保消息至少被消费一次,但不保证消息不会被重复消费,也就是说,消费者可能会消费同条消息多次,这里就需要消费者消费时,逻辑上实现幂等

rocketmq消费幂等

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论
滚动至顶部