请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

生产者发送消息给kafka,假如由于网络原因生产者未收到broker回来的ack消息,或者刚发送完生产者宕机, 那这种情况业务代码该如何控制

生产者发送消息给kafka,假如由于网络原因生产者未收到broker回来的ack消息,或者刚发送完生产者宕机, 那这种情况业务代码该如何控制

正在回答 回答被采纳积分+3

插入代码

1回答

Allen 2021-01-19 10:49:55

不需要业务做操作, kafka的producer自身就有重试机制

0 回复 有任何疑惑可以回复我~
  • 提问者 纵不朽 #1
    极端情况,我发完消息,kafka集群都确认收到,只是回来告知收到的消息给我发送方的时候我没收到,然后我这边就会网络超时之类的报错,没有继续下一步业务操作(如保存发送记录)。那发送方,一看没记录就会重新发,这样就会重复了
    回复 有任何疑惑可以回复我~ 2021-01-19 16:25:57
  • 提问者 纵不朽 #2
    我知道同一个消息,producer会重试,且保证幂等性,那假如重试次数完了,可咋整
    回复 有任何疑惑可以回复我~ 2021-01-19 16:28:02
  • Allen 回复 提问者 纵不朽 #3
    retrie的参数理论上是可以重试int的max次的, 不过非常浪费资源。 如果一定有必达的需求, 就业务直接做失败控制吧
    回复 有任何疑惑可以回复我~ 2021-01-20 10:59:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号