偏移量和消费位置
主题被分为分区集合,分区内是完全有序的,每一个分区在任何时间只被分给订阅此主题的消费组里的一个消费者消费
每一个分区的偏移量只是一个int,代表着下一个要消费的消息的偏移量
因为每个分区同一时间只被一个消费组里的一个消费者消费,所以消息消费确认不用记录是谁消费的,只需要记录消费的进度,也就是一个偏移量的值。
所以消费者可以倒带消费,因为它消费的那个分区他自己独享的,对其他消费者没有影响
但是这不是代表着kafka的消息消费是顺序的,这只是一个分区的消费是顺序的,所以可以说这个模式只是为了减少消费确认的开销?
忽然想到,主题被分为很多分区,分区还有副本
kafka的每个主题的每个分区都有副本,目的是为了容错
kafka认为副本是一个比较大的开销,而且副本只有出错时才使用,不活跃,所以kafka默认使用副本,复制因子是1
复制的单位是分区
副本的数量包括一个leader和0个或者多个followers
复制因子是包含leader在内的分区数量
所有的写入由leader执行,但是读取可以是leader,也可以是followers
分区被均匀分布在brokers上,leader和follewers 理想状态下具有一致的状态,消息顺序和偏移量都相同
followers 像普通消费者一样消费leader的消息并应用在自己的log,kafka提到这种模式(followers消费leader)好处是followers可以一次性消费多个消息
标签:消费,分区,偏移量,kafka,概念,副本,leader From: https://www.cnblogs.com/budingbuting/p/17780697.html