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

文章博客媒体网站模板网站开发工具排名

文章博客媒体网站模板,网站开发工具排名,硬件工程师都没人干了,太原建站网站模板1. 消费者确认机制 没有ack#xff0c;mq就会一直保留消息。 spring:rabbitmq:listener:simple:acknowledge-mode: auto # 自动ack2. 失败重试机制 当消费者出现异常后#xff0c;消息会不断requeue#xff08;重入队#xff09;到队列#xff0c;再重新发送给消费者。… 1. 消费者确认机制 没有ackmq就会一直保留消息。 spring:rabbitmq:listener:simple:acknowledge-mode: auto # 自动ack2. 失败重试机制 当消费者出现异常后消息会不断requeue重入队到队列再重新发送给消费者。如果消费者再次执行依然出错消息会再次requeue到队列再次投递直到消息处理成功为止。 极端情况就是消费者一直无法执行成功那么消息requeue就会无限循环导致mq的消息处理飙升带来不必要的压力。 spring:rabbitmq:listener:simple:retry:enabled: true # 开启消费者失败重试initial-interval: 1000ms # 初识的失败等待时长为1秒multiplier: 1 # 失败的等待时长倍数下次等待时长 multiplier * last-intervalmax-attempts: 3 # 最大重试次数stateless: true # true无状态false有状态。如果业务中包含事务这里改为false重启consumer服务重复之前的测试。可以发现 消费者在失败后消息没有重新回到MQ无限重新投递而是在本地重试了3次本地重试3次以后抛出了AmqpRejectAndDontRequeueException异常。查看RabbitMQ控制台发现消息被删除了说明最后SpringAMQP返回的是reject 结论 开启本地重试时消息处理过程中抛出异常不会requeue到队列而是在消费者本地重试重试达到最大次数后Spring会返回reject消息会被丢弃 3. 失败处理策略 在之前的测试中本地测试达到最大重试次数后消息会被丢弃。这在某些对于消息可靠性要求较高的业务场景下显然不太合适了。 因此Spring允许我们自定义重试次数耗尽后的消息处理策略这个策略是由MessageRecovery接口来定义的它有3个不同实现 RejectAndDontRequeueRecoverer重试耗尽后直接reject丢弃消息。默认就是这种方式ImmediateRequeueMessageRecoverer重试耗尽后返回nack消息重新入队RepublishMessageRecoverer重试耗尽后将失败消息投递到指定的交换机 比较优雅的一种处理方案是RepublishMessageRecoverer失败后将消息投递到一个指定的专门存放异常消息的队列后续由人工集中处理。 代码 import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.retry.MessageRecoverer; import org.springframework.amqp.rabbit.retry.RepublishMessageRecoverer; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration ConditionalOnProperty(name spring.rabbitmq.listener.simple.retry.enabled, havingValue true) public class ErrorMessageConfiguration { // RabbitListener(bindings QueueBinding( // value Queue(name error.queue), // exchange Exchange(name error.direct, type ExchangeTypes.DIRECT), // key {error} // )) // public void bings(Object msg){ // System.out.println(异常msg.toString()); // }Beanpublic DirectExchange errorMessageExchange(){return new DirectExchange(error.direct);}Beanpublic Queue errorQueue(){return new Queue(error.queue, true);}Beanpublic Binding errorBinding(Queue errorQueue, DirectExchange errorMessageExchange){return BindingBuilder.bind(errorQueue).to(errorMessageExchange).with(error);}Beanpublic MessageRecoverer messageRecoverer(RabbitTemplate rabbitTemplate) {return new RepublishMessageRecoverer(rabbitTemplate, error.direct, error);} }
http://www.hkea.cn/news/14286688/

相关文章:

  • 网站开发与应用 大作业作业什么优化
  • 怎样看网站的建设时间表石家庄网络科技有限公司
  • 网上销售 网站建设金湖县住房和城乡建设局网站
  • 网站后端都需要什么意思自助建站网站的宣传手册
  • 企业网站教程 优帮云做英文网站费用
  • 济南网站建设公司排行网站的建设求职简历
  • 中裕隆建设有限公司网站南京建设企业网站的公司
  • 温州网站关键词排名优化行业门户网站建设费用
  • 付费小说网站怎么做有什么做任务得佣金的网站
  • 门户网站 用什么语言广州品牌网站建设 优美
  • 有什么网站做交流会linux做网站服务器吗
  • 福州网站建设营销方案大宗交易平台软件
  • 接网站制作wordpress浏览最多的文章
  • asp做的网站缺点网站首页是什么意思
  • 现在做网站用的软件营销咨询顾问
  • 网站开发的技术路线是什么凯里市住房和城乡建设局网站
  • 网站建设开发服务费会计科目2022年免费ppt模板下载
  • 如何在自己网站上做支付宝吗网站建设公司哪家好 地址磐石网络
  • 建材手机网站嵌入式开发流程
  • 网站安全性设计甘肃省酒泉市做网站公司
  • 建设电子商务网站总结南阳网站排名优化公司
  • phpmysql做网站企业营销网站建设步骤
  • 如何建立网站会员系统吗深圳最新消息今天新增
  • html5网站优势什么设计师前景最好
  • 网站建设项目总结跨境电商热销产品排行
  • 微信网站设计尺寸wordpress 添加页面模板
  • 物流网站首页设计外贸营销型网站制作
  • 陈光锋网站运营推广新动向网站空间在线解压
  • 镇江网站建设推广58黄页
  • 静态网站设计怎么做最新代理项目