0
点赞
收藏
分享

微信扫一扫

全站最硬核 百万字强肝RocketMq源码 火热更新中~(五十一)

可以看到这个方法的核心就是重试,且对不同的异常,有不同的重试策略。

也有一些异常情况是不需要再次重试的

每次调用重试方法 重试次数+1

且重试的最大次数也是有设置的 timesTotal

总结这个方法,就是异步发送,如果有异常

调用

onExceptionImpl(retryBrokerName, msg, timeoutMillis, request, sendCallback, topicPublishInfo, instance, timesTotal, curTimes, e1,
context, false, producer);

而这个方法内部其实是对 异步发送 的调用,这两个方法其实是形成了递归

递归结束的条件 就是要么捕获了不需要再重试的异常

要么重试次数达到了最大次数

看到这儿有点迷失在代码的海洋了

再回顾下namesrv和broker各自的角色和职责吧

举报

相关推荐

0 条评论