Apache kafka 卡夫卡制作人应重试三次,以防失败

Apache kafka 卡夫卡制作人应重试三次,以防失败,apache-kafka,spring-kafka,kafka-producer-api,Apache Kafka,Spring Kafka,Kafka Producer Api,我想在任何失败的情况下实现Kafka producer重试逻辑三次,还想手动测试producer是否在重试。你能建议我如何手动测试这个功能吗。在下面的示例中,将配置添加到生产者配置中,以便在出现任何故障时重试。多谢各位 props.put("retries", 3); 您应该信任卡夫卡的这个核心功能,但是您可以通过捕获制作者的数据包来跟踪它 您可以使用tcpdump在producer服务器上嗅探数据包,并检查它们发送的时间: tcpdump-i任何端口9092 我还建议您查看这篇关于使用tsh

我想在任何失败的情况下实现Kafka producer重试逻辑三次,还想手动测试producer是否在重试。你能建议我如何手动测试这个功能吗。在下面的示例中,将配置添加到生产者配置中,以便在出现任何故障时重试。多谢各位

props.put("retries", 3);

您应该信任卡夫卡的这个核心功能,但是您可以通过捕获制作者的数据包来跟踪它

您可以使用
tcpdump
在producer服务器上嗅探数据包,并检查它们发送的时间:
tcpdump-i任何端口9092

我还建议您查看这篇关于使用tshark捕捉卡夫卡的文章

如果您想更深入地研究协议,可以使用WireShark。

请查看此指南。

感谢Ofek Hod的回复。我试图通过减少请求时间来测试kafka producer的重试次数,还尝试了kafka producer配置参数的不同计时。之后,它给出了超时异常,但卡夫卡制作人并没有再次尝试发送请求。所以我想知道测试这个功能的方法。你是说你已经嗅探了网络,发现只有一个请求?如果没有,您是如何检查重试次数的?关于如何让kafka实际进行第二次重试(或更多),我将返回一个答案:)根据producer配置,producer应该在任何失败的情况下重试,但它只提供超时异常。我在日志中看到了这些东西。我没有嗅探网络。制作人在达到最大重试次数(在你的例子中是3次)后抛出异常,所以它确实有效,就在幕后。我的“嗅探”方法可以确保它的行为符合您的期望。也许制作人确实记录了每次重试,但我错了。。你试过在调试模式下运行它吗?是的,我在调试模式下运行它,但除了超时异常之外,它没有显示任何日志。