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