kafka 消费者

目录

一、kafka的消费方式

 二、消费者总体工作流程

三、消费者组

  消费者组工作原理

  消费者组初始化

 消费者组详细消费流程

 消费一个主题

 消费一个分区

 

消费者组案例

 四、分区分配以及再平衡

分区分配策略Range

 分区分配策略Roundrobin

 

分区分配策略Sticky以及再平衡

五、offest位移

offest默认维护位置

自动offset

手动offset

指定offset

六、按照指定时间消费

 

 七、消费者事务

八、数据积压


一、kafka的消费方式

broker 决定消息推送的速率,对于不同消费速率的 consumer 就不太好处理 了。消息系统都致力于让 consumer 以最大的速率最快速的消费消息,但不幸的是, push 模式下, 当broker 推送的速率远大于 consumer 消费的速率时,consumer 恐怕就要崩溃了 。最终 Kafka 还是选取了传统的 pull 模式。
Pull 模式的另外一个好处是 consumer 可以自主决定是否批量的从 broker 拉取数据 Push 模式必须在不知道下游 consumer 消费能力和消费策略的情况下决定是立即推送每条消息还是缓存之后批量推 送。如果为了避免 consumer 崩溃而采用较低的推送速率,将可能导致一次只推送较少的消息而造成浪 费。 Pull 模式下, consumer 就可以根据自己的消费能力去决定这些策略。
Pull 有个缺点 是, 如果 broker 没有可供消费的消息,将导致 consumer 不断在循环中轮询,直到新消息到达 。为了避免这点, Kafka 有个参数可以让 consumer 阻塞知道新消息到达 ( 当然也可以阻塞知道 消息的数量达到某个特定的量这样就可以批量发送 )

kafka 消费者_第1张图片

 二、消费者总体工作流程

每个分区的数据只能由消费者组中的一个消费者消费

kafka 消费者_第2张图片

三、消费者组

  消费者组工作原理

kafka 消费者_第3张图片

kafka 消费者_第4张图片

 

  消费者组初始化

kafka 消费者_第5张图片

 

 消费者组详细消费流程

kafka 消费者_第6张图片

 

 消费一个主题

kafka 消费者_第7张图片

 kafka 消费者_第8张图片

kafka 消费者_第9张图片 

 

 消费一个分区

 kafka 消费者_第10张图片

kafka 消费者_第11张图片

 kafka 消费者_第12张图片

 

消费者组案例

kafka 消费者_第13张图片

 消费者组id相同,那么都在同一个消费者组!

一个分区的数据只会由一个消费者消费!

 

 四、分区分配以及再平衡

分区分配策略Range

kafka 消费者_第14张图片

 kafka 消费者_第15张图片

 如果有多个Topic,可能会导致多出来的分区都由C0消费,导致C0消费过多,即数据倾斜!

kafka 消费者_第16张图片

 

 分区分配策略Roundrobin

kafka 消费者_第17张图片

 kafka 消费者_第18张图片

 

 

分区分配策略Sticky以及再平衡

kafka 消费者_第19张图片

 

 

五、offest位移

offest默认维护位置

kafka 消费者_第20张图片

 kafka 消费者_第21张图片

kafka 消费者_第22张图片 

自动offset

kafka 消费者_第23张图片

kafka 消费者_第24张图片

 

手动offset

kafka 消费者_第25张图片

 kafka 消费者_第26张图片

 

指定offset

kafka 消费者_第27张图片

 kafka 消费者_第28张图片

kafka 消费者_第29张图片还需要保证分区分配完成!

kafka 消费者_第30张图片

 

六、按照指定时间消费

 kafka 消费者_第31张图片

 

 七、消费者事务

kafka 消费者_第32张图片 

kafka 消费者_第33张图片 

 

八、数据积压

kafka 消费者_第34张图片

 

你可能感兴趣的:(kafka学习记录,kafka,java,分布式)