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

永久免费个人网站个人网页设计步骤

永久免费个人网站,个人网页设计步骤,简单网页制作模板下载,哪个网站有手机目录一、生产者重连二、生产者确认一、生产者重连 当网络不稳定的时候,利用重试机制可以有效提高消息发送的成功率。不过SpringAMQP提供的重试机制是阻塞式的重试,也就是说多次重试过程中,当前线程是被阻塞的,会影响业务性能。 …

目录

  • 一、生产者重连
  • 二、生产者确认


一、生产者重连

当网络不稳定的时候,利用重试机制可以有效提高消息发送的成功率。不过SpringAMQP提供的重试机制是阻塞式的重试,也就是说多次重试过程中,当前线程是被阻塞的,会影响业务性能。

如果对于业务性能有要求,建议禁用重试机制。如果一定要使用,请合理配置等待时长和重试次数,当然也可以考虑异步线程来执行发送消息的代码。

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

二、生产者确认

RabbitMQ有两种确认机制:Publisher ConfirmPublisher Return。开启确认机制后,在MQ成功收到消息后会返回确认消息给生产者,返回的结果有以下几种情况:

  1. 消息投递到了MQ,但是路由失败。此时会通过Publisher Return返回路由异常原因,然后返回ACK,告知投递成功。
  2. 临时消息投递给了MQ,并且入队成功,返回ACK,告知投递成功。
  3. 持久消息投递到MQ,并且入队成功,返回ACK,告知投递成功。
  4. 其他情况都会返回NACK,告知投递失败

在这里插入图片描述
在生产者服务YML文件中增加一下配置:

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

publisher-confirm-type有三种模式可选:

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

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

package com.ming.config;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.ReturnedMessage;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;@Slf4j
@Configuration
public class CommonConfig implements ApplicationContextAware {@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {RabbitTemplate rabbitTemplate = applicationContext.getBean(RabbitTemplate.class);rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {@Overridepublic void returnedMessage(ReturnedMessage returnedMessage) {log.error(String.format("ReturnsCallback:消息发送失败,应答码 %s,原因 %s,交换机 %s,路由键 %s,消息 %s ...", returnedMessage.getReplyCode(), returnedMessage.getReplyText(), returnedMessage.getExchange(), returnedMessage.getRoutingKey(), returnedMessage.getMessage()));}});}
}

发送消息,指定消息ID,消息ConfirmCallback,此回调每一次发送消息的时候都要指定:

@Test
public void confirmCallbackTest() throws InterruptedException {// 1. 创建cdCorrelationData cd = new CorrelationData();// 2. 增加ConfirmCallbackcd.getFuture().addCallback(new ListenableFutureCallback<CorrelationData.Confirm>() {@Overridepublic void onFailure(Throwable throwable) {  // Spring消息回调失败log.warn("ConfirmCallback:Spring消息回调失败......", throwable);}@Overridepublic void onSuccess(CorrelationData.Confirm confirm) {  // 消息发送回调if (confirm.isAck()) {log.info("ConfirmCallback:RabbitMQ 消息发送成功,收到ACK......");}else {log.warn("ConfirmCallback:RabbitMQ 消息发送成功,收到NACK......", confirm.getReason());}}});// 3. 发送消息rabbitTemplate.convertAndSend("mt.topic", "china.weather", "黄色警报 ......", cd);  // 成功例子// rabbitTemplate.convertAndSend("mt.topic", "aaa", "黄色警报 ......", cd);  // 失败例子Thread.sleep(2000);
}
http://www.dtcms.com/a/430309.html

相关文章:

  • 关于做旅游网站的参考文献可以做企业网站
  • 个人博客网站中文模板天津做app和网站的公司
  • 网站官网认证怎么做的室内装修设计公司简介
  • 吉林省建设厅网站首页外贸企业邮箱哪家好
  • 学院网站建设的需求分析wordpress 输出文章标签
  • 东莞万江网站建设网站 制作 中心
  • 网站开发php学校智通人才网
  • 建设银行网站如何修改账单地址如何提升网站的权重
  • 怎么样建一个网站wordpress内部优化
  • 漳州找人做网站要求哪些福建企业seo推广
  • 网站备案需要关站互联网软件公司排名
  • 网站开发毕设文档河北邯郸大风
  • 企业网站建设457支付网站开发费可以做无形资产
  • 无锡高端网站建设公司wordpress弹窗下载页面
  • 龙岗区网站建设什么网站做外贸最好
  • 微商网站开发一元手游平台app
  • 毕设网站开发什么题目好南沙网站建设价格
  • 公司网站开发的国内外研究现状搜索引擎收录入口
  • 铁岭网站建设公司建网站的公司
  • 怀化新站优化html5 的网站
  • 信贷员在哪个网站做推广网站预算表怎么做
  • 如何做优秀的游戏视频网站公司自己买服务器建设网站
  • 威县做网站哪家便宜张家港百度网站推广
  • 哈尔滨论坛建站模板深圳龙华招聘信息
  • php做的汽车销售网站比较好用的微信社群管理软件
  • 域名注册了如何做网站手机怎么生成网站
  • 网站后台插件学网站开发顺序
  • 北京网站建设外包公司wordpress换背景插件
  • 陕西省建设监理协会网站主页商城网站技术方案
  • 网站首页优化方案百度官方电话人工服务电话