问题:
印记云打印设备终端对网络依赖比较大,只要有异常,通过推送的消息不能实时到达设备终端,导致终端不能及时收到消息、业务功能没有完成,用户体验度就会下降。
解决方案:
在阐述方案前,需了解RabbitMQ几个概念。
消息的TTL和死信Exchange,通过这两者的组合来实现重试需求。
消息的TTL(Time To Live)
消息的TTL就是消息的存活时间。RabbitMQ可以对队列和消息分别设置TTL。对队列设置就是队列没有消费者连着的保留时间,也可以对每一个单独的消息做单独的设置。超过了这个时间,我们认为这个消息就死了,称之为死信。如果队列设置了,消息也设置了,那么会取小的。所以一个消息如果被路由到不同的队列中,这个消息死亡的时间有可能不一样(不同的队列设置)。这里单讲单个消息的TTL,因为它才是实现延迟任务的关键。
可以通过设置消息的expiration字段或者x-message-ttl属性来设置时间,两者是一样的效果。只是expiration字段是字符串参数,所以要写个int类型的字符串:
byte[] messageBodyBytes = "Hello, world!".getBytes();
AMQP.BasicProperties properties = new AMQP.BasicProperties();
properties.setExpiration("60000");
channel.basicPublish("my-exchange", "routing-key", properties, messageBodyBytes);
当上面的消息扔到队列中后,过了60秒,如果没有被消费,它就死了。不会被消费者消费到。这个消息后面的,没有“死掉”的消息对顶上来,被消费者消费。死信在队列中并不会被删除和释放,它会被统计到队列的消息数中去。单靠死信还不能实现延迟任务,还要靠Dead Letter Exchange。
Dead Letter Exchanges
Exchage的概念在这里就不在赘述,可以从这里进行了解。一个消息在满足如下条件下,会进死信路由,记住这里是路由而不是队列,一个路由可以对应很多队列。
1. 一个消息被Consumer拒收了,并且reject方法的参数里requeue是false。也就是说不会被再次放在队列里,被其他消费者使用。
2. 上面的消息的TTL到了,消息过期了。
3. 队列的长度限制满了。排在前面的消息会被丢弃或者扔到死信路由上。
Dead Letter Exchange其实就是一种普通的exchange,和创建其他exchange没有两样。只是在某一个设置Dead Letter Exchange的队列中有消息过期了,会自动触发消息的转发,发送到Dead Letter Exchange中去。
印记云打印就是通过诸如此类思路保证消息最终到达。
相关推荐
快速删除CAD打印时教育版字体的功能
起始指令,當PRINTER接收到此指令時即表示本 段程式開始 ^XZ: 終止指令,當PRINTER接收到此指令時即表示本 段程式終止並開始列印 範例: ^XA 起始指令 ^LH30,30^FS ^FO20,10^AEN,56,30^FDZEBRA^FS ^FO20,80^B3...
去除CAD教育印记,取出后打印不会再显示教育版CAD标记
CAD去掉教育版印记实用小工具!超级好用!只需下载直接使用无需安装
教育版打印去掉在图上,用这个可以去掉打印记号
雨的印记 漂亮的 flash;清新的flash
cad去教育版打印戳记字印的软件,很方便的去除cad中带的教育印记和添加教育印记。 功能: 1.强制添加教育版打印戳记 2.强制去除教育版打印戳记 使用方法: 先打开cad,再使用该工具点击应用,再打开要打开的cad最后...
去除CAD图纸上的教育版印记软件。打开图纸时和打印出来的图纸就都不会显示“教育版本”字样了!操作方便。
中国新疆之历史印记观看简报.pdf
强制去除教育印记工具以及使用方法,可以将打印CAD文件出现“教育版”字样去除。
cad去教育版印记软件,运行该软件去掉cad教育版打印的印记。
强制增加去除教育印记,方便好用,去除烦人的教育办印记
麦肯光明品牌印记.doc
很多图纸在打印时,四边都会打印有“教育印记”,很烦人,此专用工具可去除印记标记。
去除AutoCAD教育版打印戳记合集,适用于2004~2021.
微信小程序项目实例——印记 印记是一款简洁便利的日记本 用户的日记本将展示在列表中 点击可以查看日记本中的一系列内容 用户可以在印记中发布视频、图片和文字
中国新疆之历史印记观后感教师心得800字.pdf
中国新疆之历史印记心得体会7篇.pdf
当我们翻开档案,触摸的是历史印记。——题记2012年春天,我所在单位——江苏煤炭地质勘探二队(以下简称"江苏二队")迎来60年生日,我有幸参与了60周年庆典宣传的编纂工作,使我对档案理解得更为真实与深刻。原始记录——...