一、基本架构
1、Kafka天然的布式,Topic分成多个partition分布到多个Broker上存
多个Broker组成的,每个Broker都是一个节点,Topic创建时,划分成多个partition,每个partition可存在不同Broker,每个partition都放一部分数据(分片)。
2、RocketMQ的Topic不会分片
RocketMQ用ConsumeQueue代替partition,存消息的存储地址(commitlog文件地址),不存消息。消息在commitlog中。
二、Kafka高可用
1、replica:提供replica(复制品) 副本机制。每个 partition 数据都同步到其它机器上,多个 replica 副本。 replica 选leader 出来,生产和消费都跟leader 打交道。
2、读写分布:
1)写时,将数据写本地磁盘,follower主动从 leader 来 pull 数据,所有 follower 同步好,发ack 给 leader,返回成功消息给生产者。
2)读leader 数据即可(返回 ack时,消息才会被消费者读到),返回 ack时,消息才会被消费者读到,也可以随意读写每个 follower,考虑一致性问题
3、提高容错性:均匀地将partition 所有 replica 分布不同机器上,某个Broker挂掉了,他的partition在其他Broker中都有副本。挂leader,follower 重选
https://www.cnblogs.com/lm970585581/p/13652841.html
网友评论