kafka小白一枚,我理解是:
1、topic可以有多个分区,每个分区被分配到每一个server上(这里有疑问:每个server是否只可以拥有相同topic的一个分区?每个分区通常情况下都是轮流接受消息输入,还是可以接受相同的消息输入?);
2、每个分区中都维护着一个log,也就是该分区的消息记录,该log信息又被分发到其它server上相同topic的partition中以做冗余。也就是说在topic partition下存在不同的log partition?
下图假设只有一个topic的情况下,topic在每个服务器上一个分区。每个topic partition下有一个log(红色那条线,即log1、log2、log3),每个topic partition中还有其它log partition的follower(两条灰色的线)。那么log1的leader就是server1,log2的leader是server2,log3的leader是server3。是否是这样理解的?
不是,一个broker可以拥有一个topic的多个分片,否则你让单broker的topic怎么办
leader partition负责写数据,其他followers只负责追leader的数据备份; 至于你说的发送消息,这和你的producer以及partition的生产策略有关,如果均匀生产,那么就是均衡的,否则很可能出现某一个partition消息很多,而其他partition消息很少的情况