小记--------kafka基础架构
kafka的消费者组,是为了提供消费速度,
1.为方便扩展,并提高吞吐量,一个topic分为多个partition
2.配合分区的设计,提出消费者组的概念,组内每个消费者并行消费
3.为提高可用性,为每个partition增加若干副本,类似NameNode HA
因为一个消费者组的一个消费者只能消费一次同一个topic的一个partition的数据。
也就是说,如果Topic A 有 100条数据有两个partition,而消费者组 只有一个消费A , 那么这一百条数据都必须挨个由A消费,
所以当topic有两个partition(分区)、并且消费者组有2个消费者的时候,就可以并行消费数据 消费者A 消费partition 0 的数据, 消费者B 消费partition1 的数据,从而提升效率。
但是如果topic只有两个partition, 但是消费者组有三个消费者, 也是没有用的,因为同一个消费者组的一个消费者只能消费一次topic的一个partition, 也就是总会有一个消费者是没有数据消费的,所以在创建消费者组 中消费者数量的时候需要考虑所要消费的Topic的分区数。
kafka副本数为2 , 不是说有2个Follower , 而是Leader + Follower 的个数一共为2
并且两个副本数 绝对不会存在同一个broker上, 因为副本的作用就是为了HA, 为了高可用,一台broker挂了, 会去另一台broker上找到副本数据。 所以如果leader和Follower存在一台Broker上就失去它本身的意义了 。
作者:于二黑
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。