一、消费流程图
消息在消费出现异常的时候,将一直保留在消息队列,所以你会看到以下奇怪的现象:
消息队列仅有5个消息, 投递速度也非常快,结果却一直无法消费掉。
二、重试策略
重试机制的使用场景:重试机制适用于那些可能因为临时问题(如网络问题、外部服务不可用等)导致处理失败的情况。
自定义重试逻辑:可以通过自定义错误处理器(如 RepublishMessageRecoverer)来实现更复杂的重试逻辑,例如记录重试次数并根据条件决定是否重新投递。
无限重试可能导致问题:如果消息本身存在问题(如格式错误),无限重试会导致大量日志输出,且可能阻塞队列。
本文就是中了此招,带来的后果就是SLS费用剧增。
1、重试次数
开启重试,设置重试的次数、间隔时间。
在计算间隔时间的时候,使用指数级增长,而非简单的倍数。
listener:
simple<