C# Confluent.Kafka 使用心得

一、遇到问题:Confluent.Kafka.KafkaException: Broker: Specified group generation id is not valid

这个问题很诡异,网卡一直没有找到解决方案。

首先来说,出现这个问题环境。

1.创建一个分了3个区的topic。

2.启动一个生产者。

3.消费者用手动提交偏移量的方式,且拿到队列之后,每个消息处理时间大约20ms。

4.依次启动三个消费者,前面的消费就会报这样的错。

猜测:可能是因为手动提交偏移量,不及时,导致服务器不当知道如何再分配到三个分区上面。

解决:不用手动提交偏移量方式。//c.Commit();

因为即使用了手动提交偏移量的试,并且最后不提交,消费者拿到的偏移量也是会变化到下一个的。查阅资料,这个是消费者与服务器之间的Session连接后,本地会有一个偏移量,会自动变化到下一个。但是消费者如果断开,再次连接,又会从头获取队列。

二、问题:Kafka设置为手动提交偏移量时,消费者不提交偏移量,也会自动拿下一条队列。

此问题是kafka自己的机制问题,导致程序最初的错误设计:当处理消息失败时,不提交偏移量,直接处理消息,这样拿到的也是下一条队列。

解决:不用手动提交偏移量的方式,还是采用自动提交,出错的时候,记录topic和offset。单独出错处理!

三、测试代码,生产者与消费者。

static class Production
    {
        private 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值