当前位置:网站首页 > 编程语言 > 正文

autokey(autokey发送不到autotune)



在使用activemq消息中间件进行消息队列传输时,总会由于各种原因导致消息失败。

一个经典的场景是一个生成者向Queue中发消息,里面包含了一组邮件地址和邮件内容。而消费者从Queue中将消息一条条读出来,向指定邮件地址发送邮件。消费者在发送消息的过程中由于种种原因会导致失败,比如网络超时、当前邮件服务器不可用等。这样我们就希望建立一种机制,对于未发送成功的邮件再重新发送,也就是重新处理。重新处理超过一定次数还不成功,就放弃对该消息的处理,记录下来,继续对剩余消息进行处理。

ActiveMQ为我们实现了这一功能,叫做ReDelivery(重新投递)。当消费者在处理消息时有异常发生,会将消息重新放回Queue里,进行下一次处理。当超过重试次数时,消息会被放置到一个特殊的Queue中,即Dead Letter Queue,简称DLQ,用于进行后续分析。

消息重发机制RedeliveryPolicy 有几个属性如下:

三、什么情况下会触发消息重发

1.在使用事务的Session中,调用rollback()方法;
2.在使用事务的Session中,调用commit()方法之前就关闭了Session;
3.在Session中使用CLIENT_ACKNOWLEDGE签收模式或者INDIVIDUAL_ACKNOWLEDGE模式,并且调用了recover()方法。
可以通过设置ActiveMQConnectionFactory来定制想要的再次传送策略。

4.消息接收的时候抛出异常

需要注意的是:使用手动签收模式,如果客户端没有调用message.acknowledge()方法是不会立刻重发消息的,只有当前Coustomer重启时才能重新接受消息

到此这篇autokey(autokey发送不到autotune)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • ip1(ip138查询域名查询)2025-03-29 19:27:07
  • max6675精度(精度m6指的是什么)2025-03-29 19:27:07
  • 字符串转换器(字符串 转换)2025-03-29 19:27:07
  • spss25和26(spss25和26的分析结果会查一点点吗)2025-03-29 19:27:07
  • 反编译exe文件(反编译 exe)2025-03-29 19:27:07
  • ad8139替代(ad8132)2025-03-29 19:27:07
  • 耳机蓝牙地址码会出现重复吗(耳机蓝牙地址码会出现重复吗)2025-03-29 19:27:07
  • 断开连接英文(断开连接英文短语)2025-03-29 19:27:07
  • gkjy是什么意思(gk是什么意思是什么)2025-03-29 19:27:07
  • yum命令详解(yum常用命令)2025-03-29 19:27:07
  • 全屏图片