目录
1:参数设置解析
1.1:生产者消息重发次数默认3次
消息发送重试是客户端SDK内置的重试策略,对应用不可见,建议取值不要过大,避免阻塞业务线程。 如果消息达到最大重试次数后还未发送成功(比如MQ服务异常接收不到生产者发送的消息),建议业务侧做好兜底处理,保证消息可靠性。
1.2:消息消费重试次数 默认值16次
消费重试次数应根据实际业务需求设置合理的参数值,避免使用重试进行无限触发。重试次数过大容易造成系统压力过量增加。
1.3:半事务消息第一次回查时间
默认值:取值等于[事务异常检查间隔] * 最大限制:不超过1小时。也就是说在一个小时内回调checkLocalTransaction方法查询事务的状态
1.4:事务异常检查间隔 默认值:60秒。
第一次回查没有结果,那么按照指定间隔继续回查
1.5:半事务消息最大超时时长 默认值:4小时。 * 取值范围:不支持自定义修改
半事务消息因系统重启或异常情况导致没有提交,生产者客户端会按照事务异常检查间隔时间进行回查,若超过半事务消息超时时长后没有返回结果,半事务消息将会被强制回滚。 您可以通过监控该指标避免异常事务。也就是说超过4个小时消息,这条事务消息会回滚。
2:重试机制
2.1:发送者重试最多3次
生产者默认发送重试次数是三次,比如MQ网络波动,发送消息到了MQ,MQ也保存了消息,但是没有将结果返回给生产者,生产者误认为MQ没有收到消息,会进行最多三次的重复发送。导致MQ收到的消息重复。
发送者重试缺点:根据缺点源码分析,同步发送会重试3次,尽最大保证把消息送达,但是可能会出现同一条消息多次发送到mq,消费者会 接收到同一条消息最大三次,要保证消费者的幂等性。
2.2:接受者重试最多16次
重试的消息会进入一个<