(五)消费者

1 Kafka 消费方式

244a6612dfaf4a6f9a06846ff84f50cb.png

2 Kafka 消费者工作流程

2.1 消费者总体工作流程 

c7f730552f5b4f81a48cf94b92027e97.png

2.2 消费者组原理

e7467f715db947efa98491bba48c204c.png 

3abe531f12a94d8cb33641585ba2b803.png 

e9caf94180dc4e5e81fd97ecd9d4e950.png 

141fcfc9ff6941f79ad29084b304c17e.png 

2.3 消费者重要参数

1b0af2bd76544a97b3425b59073050e3.png 

76c0df0f5b7140d4ba48af52d988e90d.png 

3 消费者 API

4 生产经验——分区的分配以及再平衡

af6a167574d64352837427b6596fe348.png

597bd3628bfe4329b5a60b9ba45ba756.png

 4.1 Range 以及再平衡

1)Range 分区策略原理

ec023c132e324247a2a0230dff712007.png

 4.2 RoundRobin 以及再平衡

1)RoundRobin 分区策略原理

52726168026e41ceabc7c28948091b67.png

 4.3 Sticky 以及再平衡

粘性分区定义:可以理解为分配的结果带有“粘性的”。即在执行一次新的分配之前,
考虑上一次分配的结果,尽量少的调整分配的变动,可以节省大量的开销。
粘性分区是 Kafka 从 0.11.x 版本开始引入这种分配策略,首先会尽量均衡的放置分区
到消费者上面,在出现同一消费者组内消费者出现问题的时候,会尽量保持原有分配的分
区不变化。

5 offset 位移

5.1 offset 的默认维护位置b1b46fdd18164524b237a8607bd5f571.png

 __consumer_offsets 主题里面采用 key 和 value 的方式存储数据。key 是 group.id+topic+
分区号,value 就是当前 offset 的值。每隔一段时间,kafka 内部会对这个 topic 进行
compact,也就是每个 group.id+topic+分区号就保留最新数据。

5.2 自动提交 offset

8e278bf9bc4f4424b994187a007f8b1f.png

5.3 手动提交 offset(分为同步异步)

42557c19162d4bb7a885366a0cfc7684.png 5.4 指定 Offset 消费

auto.offset.reset = earliest | latest | none 默认是 latest。
当 Kafka 中没有初始偏移量(消费者组第一次消费)或服务器上不再存在当前偏移量时(例如该数据已被删除),该怎么办?
(1)earliest:自动将偏移量重置为最早的偏移量,--from-beginning。(2)latest(默认值):自动将偏移量重置为最新偏移量。(3)none:如果未找到消费者组的先前偏移量,则向消费者抛出异常。

95d2b4b1b9b8430d823dc30b89242e9c.png

 (4)任意指定 offset 位移开始消费

每次执行完需要修改消费者组名。

5.5 指定时间消费

5.6 漏消费和重复消费

49c643e1fe504cc7bdd06701dc6c53ce.png

 6 生产经验——消费者事务

77f2fb091a5b48a79a35b328397b3dc0.png

 7 生产经验——数据积压(消费者如何提高吞吐量)

f67a6a0552e84221905863a678e479f7.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值