Kafka的多路复用消费者和生产者

xzv2uavs  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(368)

在我的kafka消费线程(高级)中,在我消费了一条消息之后,我将对该消息应用一些业务逻辑并将其转发给ws。但是这个Web服务有时可能会关闭,因为我从kafka中使用了这个对象,并且偏移量向前移动,所以我会错过这个对象。
解决这个问题的一个方法是在zookeeper中禁用autocommit并通过调用programmaticaly提交offset,但我认为这是一个非常昂贵的操作。我将生产Kafka在大约2000 tps和可能会增加以后的时间。
另一种方法——我不确定这是不是一个好主意——是如果我面对任何问题,再次向Kafka制作这个被消费的对象,但我在所有的谷歌搜索中都没有看到任何与此相关的帖子。这是一件微不足道的事情吗?
你能给我一些关于处理这种情况的见解吗。
谢谢

bqjvbblv

bqjvbblv1#

您可以将失败的邮件发回到同一主题或您选择的其他主题。
如果你使用同一个主题,你将推送主题末尾的消息,它们将在其他消息之后被拾取(因此,如果顺序对你来说很重要,就不要这样做)。另外,如果在发送消息之前执行的操作不是幂等的,则必须对这些记录进行标识,这样它们就不会执行两次操作。
如果您使用失败的主题,您可以将无法发送的消息推送到该主题,并且当ws再次正常运行时,您需要创建一个使用者,该使用者使用那里的所有消息并将它们发送到ws。
希望有帮助!

acruukt9

acruukt92#

将此类消息移动到错误队列并稍后重试是一种众所周知的方法。
查看死信频道

相关问题