sgg-kafka

地址:https://www.bilibili.com/video/BV1a4411B7V9?from=search&seid=10631292900083333512

消费者消费策略:https://blog.csdn.net/lzb348110175/article/details/100773487

kafka消息过滤设置:https://blog.csdn.net/yy756127197/article/details/103901814

 

---

kafka消费者,基本的配置

---32---

这个是两种场景是可以使用的。

当前这个消费者组第一次消费,就是换了组,或者是新的,挂掉直接重启不是的。

如果当前的offset已经不存在了,已经初始化了,就是消费者挂掉了,之前已经消费到10了,当前只有10条数据,七天之后就是kafka已经删掉了这些数据了,之后再次启动的话就是10但是已经没有数据了,而且我的kafka机器已经是1000了,此时我会补全之前没有消费的。

earlister

laster---默认

改为这个配置:

第一种情况我没换组,就没有数据拉取,因为进度是一样的。

此时我换了组:

再次起消费者:

如何重新消费某一个主题的数据:换一个组加上earlist这个属性就可以了。

---33---

消费者保留offset:

此时打开消费者。

消费10条数据,再次打开消费者依然消费10条数据。

两次都是这样的。

解释:

offset只是没有写回去,但是在我当前的进程的内存还是有的,所以还是沿着100往下消费的。

此时停掉重新开始的话就又从90开始消费了。

保存在非内存的offset只是在启动的时候去访问一次的。

---34---

自动提交。提交过程中假设我读100条数据过来之后,就是我间隔1秒提交一次offset,我再次提交offset,但是在提交之后,我这100步长还没有处理完挂掉了,再次重新启动的时候,我消费者在101,但是我还没处理完这100个就会丢失数据。

自动提交是基于时间提交的。

手动提交有同步和异步的。

---

异步用的会多一些的,不管是自动还是手动都是有问题的。

自动的话时间间隔比较短的话会丢失数据的,就是我本地还没处理完你就给我提交了,我可能会挂掉的,再次启动就是在提交之后开始读取的。

自动提交的延时长一些的话,我读了100条,已经处理完了,5s处理完的,10s之后再提交的话,此时挂掉了,再次启动的话就是重复消费了。

---

自定义存储offset。

自己提交是传到了kafka里面了。

场景的话就是我们处理之后放在了mysql,放在统一的事务里面。

实现:

这两个方法是自己写的。

在musql读取,要把组  主题  分区 我们的offset

kafka:

---35---

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值