![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rocketMq
新来的程序员
这个作者很懒,什么都没留下…
展开
-
RocketMq 设计原理
一.消息存储commitLog:commitLog文件是消息持久化的表现形式。producer提交完消息后,broker会将消息首先持久化到commitLog中。commitLog的写入是顺序写入的。每个commitLog文件大小默认1G。每个消息占一个偏移量。当文件写满了,就写入下一个文件ConsumerQueue:消费队列,RocketMq是采取数据与索引分离的架构。想一想,如果consumer直接通过commitLog进行消费,那每次消费时都需要按照topic遍历commitLog文件是原创 2020-05-24 21:12:24 · 349 阅读 · 0 评论 -
RocketMq什么时候会重复消费
1.消费者负载均衡当我们的Consumer定义为BroadCast广播模式的话,每个ConsumerGroup下的consumer都会获得全量消息。此时拉取消息时不同的节点会得到相同的消息。而cluster集群模式下,负载均衡策略(RebalanceImpl)会将多个ConsumerQueue平均分配给ConsumerGroup下的消费者实例(默认平均分配策略),不会出现同一个消费者组中有两个或以上的consumer实例消费同一个队列。比如:consumer1:queue1,queue2consum原创 2020-05-24 19:13:32 · 2073 阅读 · 0 评论