我正在使用spring-kafka
版本1.1.3
来使用来自主题的消息。自动提交在消费者配置中设置为true
和max.poll.records
到10
。与服务器协商为012秒10秒。会话超时时卡夫卡监听器回滚事务
收到消息后,我将其中的一部分保存到数据库中。我的数据库往往是相当缓慢的,有时,它由卡夫卡听众导致会话超时:
自动偏移提交失败组MYGROUP:承诺无法完成 由于本集团已重新调整和分配的分区 另一位会员。这意味着后续调用 poll()之间的时间长于配置的session.timeout.ms,其中 通常意味着轮询循环花费太多时间处理消息 。您可以通过增加会话 超时或通过减少使用max.poll.records在poll() 中返回的批处理的最大大小来解决此问题。
既然不能增加服务器的会话超时和max.poll.records
已经下跌10,我希望能够在包裹交易我的数据库调用,这将在的情况下回滚卡夫卡会话超时。
这是可能的,我该如何做到这一点?
不幸的是,我无法在文档中找到解决方案。
为什么回滚数据库提交?如果您需要将消费者设置为手动提交,然后捕获异常。 – PragmaticProgrammer
什么例外?以上信息仅被记录。据我所知,当卡夫卡会议超时时不会引发异常。 – meva