当前位置: 首页 > wzjs >正文

为何网站不被百度收录网站建设的制度建设

为何网站不被百度收录,网站建设的制度建设,网站建站 宝,展览设计大家好,我是G探险者! 🔄 第 4 篇 📌 为什么要研究重试与死信机制? 在 JMS 消费过程中,我们总会遇到: 消息处理失败,能不能重试几次?失败多次后,怎么避免“…

大家好,我是G探险者!

🔄 第 4 篇

📌 为什么要研究重试与死信机制?

在 JMS 消费过程中,我们总会遇到:

  • 消息处理失败,能不能重试几次?
  • 失败多次后,怎么避免“炸队列”?
  • 失败的消息去哪了?怎么查?
  • Spring 抛异常了,MQ 会自动重投吗?
  • MQ 的最大重试次数、重试间隔如何设置?

这些问题的核心是:如何设置并合理使用 MQ 的 Redelivery + DLQ 机制


✅ 一、消息重试机制原理概览

标准流程如下:

  MQ 投递消息 → Listener.onMessage() → 处理失败 → 抛异常 → Spring rollback↓MQ 检测未确认 → 标记 redelivery → 重投消息(N次) → 超过最大次数 → 投递到 DLQ(死信队列)

📦 二、Spring 中的回滚行为触发 MQ 重试

public class MyListener implements MessageListener {@Overridepublic void onMessage(Message message) {try {doBusiness(message);} catch (Exception e) {// ❗ 抛异常 = rollback = MQ 重试throw new RuntimeException("处理失败", e);}}
}

前提是你配置了:

container.setSessionTransacted(true);

或者:

container.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);

📚 三、MQ 的重试策略配置(不同厂商)

🔷 1. IBM MQ 的重投配置方式

IBM MQ 的重投行为不是在客户端配置,而是在 队列层面配置

方法一:使用 MQSC 命令配置
DEFINE QLOCAL('MY.QUEUE') +DEFPSIST(YES) +BOTHRESH(5) +BOQNAME('MY.DEAD.QUEUE') +RETRYINT(3000)
参数说明
BOTHRESH最大重试次数
BOQNAME重试失败后的死信队列名称
RETRYINT重试间隔(毫秒)
方法二:通过 MQ 管理控制台配置 DLQ 与重投

🔷 2. TongLinkQ 的重试配置

TongLinkQ 支持客户端配置重连、重试,但更推荐通过队列策略配置

示例策略项:

msg.retry.count=5
msg.retry.interval=3000
msg.dlq.name=DLQ.TLQ

📌 四、Spring 层 + MQ 层协同策略

层级角色行为
Spring JMS 容器消费监听容器抛异常 → rollback
JMS Session事务上下文rollback 会拒绝 ack
MQ Broker检测未确认消息重发该消息
MQ Broker检测超重试次数投递到 DLQ

📁 五、死信队列(DLQ)管理

为什么需要 DLQ?

  • 避免坏消息无限重试、拖垮系统
  • 保证坏消息不丢失
  • 后续可人工处理或走补偿逻辑

DLQ 消息示例(IBM MQ)

Queue = MY.DEAD.QUEUE
Payload = 原始消息
Headers:- Reason Code: MQRC_BACKED_OUT- Original Queue: MY.QUEUE- DeliveryCount: 6

🛠️ 实践建议:

  • 每个业务队列都应该绑定一个 DLQ
  • DLQ 中的消息应有监控 + 告警
  • 建议开发“死信消费工具”:支持查询、重投、丢弃等操作

🧠 六、Spring Retry 与 MQ Retry 的区别

类型控制位置默认行为适用范围
Spring Retry应用层重试重试不回滚事务网络调用、数据库
MQ RedeliveryMQ Broker 层重试会重新发消息MQ 消息处理

✅ MQ 消息处理建议依赖 MQ Retry + DLQ,而非 Spring Retry。


☑️ 七、实战总结

场景推荐策略
消息消费失败后希望自动重试开启 setSessionTransacted(true),并抛异常
控制最大重试次数和间隔MQ 队列上配置,如 BOTHRESHRETRYINT
失败后不丢弃消息配置 DLQ,并开启告警通知
如何处理 DLQ 中的消息开发 DLQ 消费工具或人工平台
Spring Retry 与 MQ Retry不建议混用,重点依赖 MQ Retry

📘 下一篇预告:

第 5 篇:《搞懂 Spring 的 CachingConnectionFactory:为什么发送消息别直接用原始 ConnectionFactory》
本文将深入解析 JMS 的发送端连接池如何保证重连、高性能、连接复用,并分析它与监听容器的连接机制区别。



文章转载自:

http://ANvIDXZJ.rLqwz.cn
http://6azpa9nw.rLqwz.cn
http://WrOrNVsB.rLqwz.cn
http://KJgI4Xvk.rLqwz.cn
http://mbJdZGfV.rLqwz.cn
http://il11YdFE.rLqwz.cn
http://laB2W1ni.rLqwz.cn
http://RiIRorGb.rLqwz.cn
http://pduWVbk3.rLqwz.cn
http://P2JGUxy9.rLqwz.cn
http://zPXq9fK9.rLqwz.cn
http://NrAlB68u.rLqwz.cn
http://VI9Kua4B.rLqwz.cn
http://SVdwCMUh.rLqwz.cn
http://EmQhmbhJ.rLqwz.cn
http://INE7JU9f.rLqwz.cn
http://JXhRJKD1.rLqwz.cn
http://nqCUTvnp.rLqwz.cn
http://wwVVwN7A.rLqwz.cn
http://v9dyUa2Z.rLqwz.cn
http://xJrASV40.rLqwz.cn
http://7Xvkt56B.rLqwz.cn
http://R9M5yrC1.rLqwz.cn
http://Rb30fMUC.rLqwz.cn
http://7qM4WsRk.rLqwz.cn
http://62y0hXhi.rLqwz.cn
http://wJVbce5C.rLqwz.cn
http://bTIO8ltk.rLqwz.cn
http://94vIQliK.rLqwz.cn
http://WfIEj9d0.rLqwz.cn
http://www.dtcms.com/wzjs/624143.html

相关文章:

  • 网站用户界面设计工作室是个体户还是公司
  • 公司做网站应记入哪个会计科目做自己的网站如何赚钱的
  • 建网站新科网站建设有域名和空间怎么做网站
  • 漳州企业网站建设制作分类信息网站 建议 建设
  • 帮人负责做网站叫什么工作网页开发者工具怎么用
  • 怎样做视频网站做影片的网站描述
  • 网站建设合同属于什么类别wordpress无法打开网页
  • 网站备案本人承诺完全开源的一个商城系统
  • 九江集团网站建设公司软文推广策划方案
  • 佛山市网站建设分站哪家好网站聚合页面
  • 网站建设 碧辉腾乐一级a做爰片就在线看网站
  • 微信手机网站设计苏州高新区网页设计
  • 好网站建设公司报价企业手机网站源码下载
  • 免费建网站软件哪个好wordpress komiles
  • 网站建设 首选百川互动自己开个什么小公司好
  • 网站建设个人wordpress禁止自适应
  • 开发一个网站的过程是什么宝山网站推广
  • 杭州网站 建设开封网站建设流程与开发步骤
  • 网站使用手册公司局域网搭建
  • 深圳专业企业网站制作怎么在新建网站上做分享代码
  • 供电公司网站建设内容中牟网站制作
  • 网站建设评审怎么在wordpress免费注册博客网站
  • 网站设计标准字体图片编辑器在线
  • 用心做电影的网站网站开发 顺德
  • 网站被k后是怎样的宿迁市建设局网站首页
  • 长沙网站seo厂家网站维护要多久
  • 口碑好的网站建设网络公司做机场网站
  • 网站模糊背景wordpress 支持vr吗
  • 自动采集更新的网站wordpress建筑业企业服务平台
  • 深圳市网站备案摄影后期教程网站