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

上海免费模板建站wordpress qq登录微信登录界面

上海免费模板建站,wordpress qq登录微信登录界面,外国大气网站,做报纸能经常更新网站RabbitMQ消息投递的路径为: 生产者 —> 交换机 —> 队列 —> 消费者 在RabbitMQ工作的过程中,每个环节消息都可能传递失败,那么RabbitMQ是如何监听消息是否成功投递的呢? 确认模式(confirm)可以监…

RabbitMQ消息投递的路径为:
生产者 —> 交换机 —> 队列 —> 消费者
在RabbitMQ工作的过程中,每个环节消息都可能传递失败,那么RabbitMQ是如何监听消息是否成功投递的呢?
确认模式(confirm)可以监听消息是否从生产者成功传递到交换机。
退回模式(return)可以监听消息是否从交换机成功传递到队列。
消费者消息确认(Consumer Ack)可以监听消费者是否成功处理消息。

开启确认模式

publisher-confirm-type: correlated

@SpringBootTest
public class ProducerTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testConfirm(){// 定义确认模式的回调方法,消息向交换机发送后会调用confirm方法rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {/*** 被调用的回调方法* @param correlationData 相关配置信息* @param ack 交换机是否成功收到了消息* @param cause 失败原因*/@Overridepublic void confirm(CorrelationData correlationData, boolean ack, String cause) {if (ack){System.out.println("confirm接受成功!");}else{System.out.println("confirm接受失败,原因为:"+cause);// 做一些处理。}}});rabbitTemplate.convertAndSend("my_topic_exchange","my_routing","send message...");}
}

消息回退

spring:rabbitmq:host: 192.168.0.162port: 5672username: guestpassword: guestvirtual-host: /# 开启确认模式publisher-confirm-type: correlated# 开启回退模式publisher-returns: true
@SpringBootTest
public class ProducerTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testReturn(){// 定义退回模式的回调方法。交换机发送到队列失败后才会执行returnedMessage方法rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {/*** @param returned 失败后将失败信息封装到参数中*/@Overridepublic void returnedMessage(ReturnedMessage returned) {System.out.println("消息对象:"+returned.getMessage());System.out.println("错误码:"+returned.getReplyCode());System.out.println("错误信息:"+returned.getReplyText());System.out.println("交换机:"+returned.getExchange());System.out.println("路由键:"+returned.getRoutingKey());// 处理消息...}});rabbitTemplate.convertAndSend("my_topic_exchange","my_routing1","send message...");}
}

消息确认
自动确认:spring.rabbitmq.listener.simple.acknowledge=“none”
手动确认:spring.rabbitmq.listener.simple.acknowledge=“manual”
消费者处理消息时定义手动签收和拒绝签收的情况

@Component
public class AckConsumer {@RabbitListener(queues = "my_queue")public void listenMessage(Message message, Channel channel) throws IOException, InterruptedException {// 消息投递序号,消息每次投递该值都会+1long deliveryTag = message.getMessageProperties().getDeliveryTag();try {int i = 1/0; //模拟处理消息出现bugSystem.out.println("成功接受到消息:"+message);// 签收消息/*** 参数1:消息投递序号* 参数2:是否一次可以签收多条消息*/channel.basicAck(deliveryTag,true);}catch (Exception e){System.out.println("消息消费失败!");Thread.sleep(2000);// 拒签消息/*** 参数1:消息投递序号* 参数2:是否一次可以拒签多条消息* 参数3:拒签后消息是否重回队列*/channel.basicNack(deliveryTag,true,true);}}
}
http://www.yayakq.cn/news/826483/

相关文章:

  • 创造网站的最简单 软件是哪个百度一直不收录网站
  • 广西住房建设部网站php做视频网站有哪些软件下载
  • 手机版 演示 网站 触摸竞价代运营外包公司
  • 伊宁网站建设新华网海南频道
  • 班组建设网站百度网页版登录入口官网
  • 网站的素材做logo网站建设与运营实验
  • 网站建设和技术服务合同企业英文网站建设的重要性
  • 长春网站制作招聘信息梅州建设网站
  • 温州网站设计力推亿企帮wordpress链接自定义后文章打不开
  • 江苏建设工程招标网官方网站公司网站平台的作用
  • 哪些网站开发短视频推广计划
  • 西安招聘网站建设华为官方手表网站
  • 网站收录查询方法html5 开发的网站
  • 全国设计网站建设网站设计流程是什么
  • 网站开发 图片铺满怎么制作网站下载软件
  • 做的网站怎么一搜就能出来国内可以上的网站
  • 在线教育网站html模板wordpress 的导航插件
  • 南宁建设网站哪里好网络维护公司创业计划书
  • 克隆网站后怎么做下载好看影视大全极速版
  • 怎么建立一个网站卖东西西安做h5网站
  • 做网站需多少钱海淀区seo搜索优化
  • 免费做 爱视频网站免费建立单位的网站
  • 网站开发首选语言wordpress vaptcha
  • 禅城网站建设哪家好怎么样自己做网站
  • 福州做网站需要多少钱wordpress 搜狗收录
  • 四川省建行网站展厅布置
  • php网站视频代码一个平台网站开发
  • 做系统的图标下载网站一键搭建的wordpress数据库怎么看
  • 织梦网站访问量统计代码自贡建设网站
  • 廊坊智能模板建站建筑公司简历模板