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

衡水做网站价格中国培训网官网

衡水做网站价格,中国培训网官网,微信网站制作公司哪家好,吴志祥最早做的网站是什么网站RabbitMQ发送者重连、发送者确认 一、发送者重连 spring:rabbitmq:connection-timeout: 1s #设置MQ的连接超时时间template:retry:enabled: true #开启超时重试机制initial-interval: 1000ms #失败后的初始等待时间multiplier: 1 #失败后下次的等待时长倍数,下次等…

RabbitMQ发送者重连、发送者确认

一、发送者重连

spring:rabbitmq:connection-timeout: 1s #设置MQ的连接超时时间template:retry:enabled: true #开启超时重试机制initial-interval: 1000ms #失败后的初始等待时间multiplier: 1 #失败后下次的等待时长倍数,下次等待时长=initial-interva * multipliermax-attempts: 3 #最大重试次数

当网络不稳定的时候,利用重试机制可以有效提高消息发送成功的的成功率,不过SpringAMQP提供的重试机制是阻塞式的重试,也就是说多次重试等待的过程中,当前线程是被阻塞的,会影响业务性能。
如果对于业务性能有要求,建议禁用重试机制。如果一定要用,请合理配置等待时长和重试次数,当然也可考虑使用异步线程来执行发送消息的代码。

二、发送者确认
SpringAMQP提供了Publisher ConfirmPublisher Return两种确认机制。开启确认机制以后,当发送者发送消息给MQ后,MQ会返回确认结果给发送者。返回的结果有以下几种情况:

  • 消息投递到MQ,但是路由失败。此时会通过PublisherReturn返回路由异常原因,然后返回ACK,告知投递成功。
  • 临时消息投递到了MQ,并且入队成功,返回ACK,告知投递成功
  • 持久消息投递到了MQ,并且入队完成持久化,返回ACK,告知投递成功
  • 其他情况都会返回NACK,告知投递失败。
    在这里插入图片描述

1.在publicher这个微服务的application.yml中添加配置

spring:rabbitmq:publisher-confirm-type: correlated #开启publisher confirm机制,并设置confirm类型publisher-returns: true #开启publisher return机制

配置说明这里publisher-confirm-type有三种模式可选

  • none:关闭confirm机制
  • simple:同步阻塞等待MQ的回执消息
  • correlated:MQ异步回调方式返回回执消息

2.ReturnCallback:每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目启动过程中配置:

@Slf4j
@Configuration
@RequiredArgsConstructor
public class MqConfig {private final RabbitTemplate rabbitTemplate;@PostConstructpublic void init() {rabbitTemplate.setReturnsCallback(returnedMessage -> {log.error("监听到消息return callback");log.debug("exchange: {}", returnedMessage.getExchange());log.debug("routingKey: {}", returnedMessage.getRoutingKey());log.debug("message: {}", returnedMessage.getMessage());log.debug("replyCode: {}", returnedMessage.getReplyCode());log.debug("replyText: {}", returnedMessage.getReplyText());});}
==============================上面简化的是这部分内容=========================================================rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {@Overridepublic void returnedMessage(ReturnedMessage returnedMessage) {//TODO}});

3.ConfirmCallback:发送消息,指定消息ID,消息ConfirmCallback

@Testpublic void testConfirmCallback() throws InterruptedException {//创建correlationDataCorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());correlationData.getFuture().addCallback(new ListenableFutureCallback<CorrelationData.Confirm>() {@Overridepublic void onFailure(Throwable ex) {log.error("spring amqp 处理确认结果异常", ex);}@Overridepublic void onSuccess(CorrelationData.Confirm result) {if (result.isAck()) {log.debug("收到ConfirmCallback ack,消息发送成功!!!");} else {log.error("收到ConfirmCallback nack,消息发送失败!reason:{}", result.getReason());}}});//交换机名称String exChangeNange = "hmall.topic";//消息String message = "TopicTopic!!!Topic!!! ";//发送消息rabbitTemplate.convertAndSend(exChangeNange, "hina.new", message, correlationData);Thread.sleep(3000);}
http://www.shuangfujiaoyu.com/news/38967.html

相关文章:

  • 北京网站建设公司兴田德润活动个人网站设计欣赏
  • 免费建设自己的文学网站百度网盘下载速度慢破解方法
  • wordpress 附件分离seo建站优化
  • 网络公司网站建设报价谷歌外链
  • 如何利用div做网站深圳华强北新闻最新消息今天
  • 厦门教育平台网站建设seo快速排名软件首页
  • 广州一站式网站建设关于网络推广的方法
  • 泰州网站制作报价百度搜索推广创意方案
  • 琼海做球网站aso优化推广公司
  • 网站开发 技术难点百度手机助手下载
  • 网站开发平台 eclipse网站制作的流程
  • 文化投资的微网站怎么做aso优化工具
  • 网站虚拟域名长沙全网推广
  • 服装网站建设目标客户手机网站百度关键词排名
  • 做网站需要准备哪些百度指数怎么看地域数据
  • 怎么建设网站赚钱网络运营培训班多少钱
  • 专业网站建设专家国外网站排名前十
  • 东凤镇 网站建设营销计划
  • 珠海响应式网站建设推广公司最新社会舆情信息
  • 网站备案和不备案有什么区别提升seo排名平台
  • 北京网站制作公司招聘百度网站登录入口
  • 简单的购物网站怎么做百度销售系统
  • 现在建站好么企业网站建设报价表
  • 学互联网需要什么学历站长工具seo综合查询下载
  • 鹤壁公司做网站百度百科分类方法
  • 哈尔滨网站建设2017广州网站营销优化qq
  • 网站建设 上海浦东企业员工培训课程内容
  • 增加网站关键词库自己做网站设计制作
  • 旅游分销网站建设方案外贸网络营销
  • 辽宁建设厅网站监管处搜索引擎seo