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

企业网站开发信息安徽省住房建设厅网站

企业网站开发信息,安徽省住房建设厅网站,windows怎么做网站,互联网保险的发展现状我们知道#xff0c;RabbitMQ的消息最终是存储在Queue上的#xff0c;而在Queue之前还要经过Exchange#xff0c;那么这个过程中就有两个地方可能导致消息丢失。第一个是Producer到Exchange的过程#xff0c;第二个是Exchange到Queue的过程。 为了解决这个问题#xff0c…我们知道RabbitMQ的消息最终是存储在Queue上的而在Queue之前还要经过Exchange那么这个过程中就有两个地方可能导致消息丢失。第一个是Producer到Exchange的过程第二个是Exchange到Queue的过程。 为了解决这个问题有两种方案一种是通过confirm机制另外一种是事务机制因为事务机制并不推荐这里先介绍Confirm机制。 Publisher Confirm是一种机制用于确保消息已经被Exchange成功接收和处理。一旦消息成功到达Exchange并被处理RabbitMQ会向消息生产者发送确认信号ACK。如果由于某种原因例如Exchange不存在或路由键不匹配消息无法被处理RabbitMQ会向消息生产者发送否定信号NACK。 //启用Publisher Confirmschannel.confirmSelect();//设置Publisher Confirms回调channel.addConfirmListener(new ConfirmListener() {Overridepublic void handleAck(long deliveryTag, boolean multiple) throws IOException {System.out.println(Message confirmed with deliveryTag:deliveryTag);//在这里处理消息确认}Overridepublic void handleNack(long deliveryTag, boolean multiple) throws IOException {System.out.println(Message not confirmed with deliveryTag:deliveryTag);//在这里处理消息未确认}});Publisher Returns机制与Publisher Confirms类似但用于处理在消息无法路由到任何队列时的情况。当RabbitMQ在无法路由消息时将消息返回给消息生产者但是如果能正常路由则不会返回消息。 //启用Publisher Returnschannel.addReturnListener(new ReturnListener() {Overridepublic void handleReturn(int replyCode, String replyTest, String exchange, String routingKey, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(Message returned with replayCode: replyCode);//在这里处理消息发送到Queue失败的返回}});通过以上方式我们注册了两个回调监听用于在消息发送到Exchange或者Queue失败时进行异常处理。通常我们可以在失败时精心报警或者重试来保障一定能发送成功。 完整代码 package com.example.demo.rabbitmq;import com.rabbitmq.client.*;import java.io.IOException;public class PublisherCallbacksExample {public static void main(String[] args) throws Exception{ConnectionFactory factorynew ConnectionFactory();factory.setHost(localhost);try(Connection connectionfactory.newConnection();Channel channelconnection.createChannel()){//启用Publisher Confirmschannel.confirmSelect();//设置Publisher Confirms回调channel.addConfirmListener(new ConfirmListener() {Overridepublic void handleAck(long deliveryTag, boolean multiple) throws IOException {System.out.println(Message confirmed with deliveryTag:deliveryTag);//在这里处理消息确认}Overridepublic void handleNack(long deliveryTag, boolean multiple) throws IOException {System.out.println(Message not confirmed with deliveryTag:deliveryTag);//在这里处理消息未确认}});//启用Publisher Returnschannel.addReturnListener(new ReturnListener() {Overridepublic void handleReturn(int replyCode, String replyTest, String exchange, String routingKey, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(Message returned with replayCode: replyCode);//在这里处理消息发送到Queue失败的返回}});String exchangeName my_exchange;String routingKey my_routing_key;String message Hello,RabbitMQ!;//发布消息到Exchangechannel.basicPublish(exchangeName,routingKey,true,null,message.getBytes());//等待Publisher Confirmsif (!channel.waitForConfirms()) {System.out.println(Message was not confirmed!);}//关闭通道和连接channel.close();}} } 另外这里如果发送到Queue之后是否一定能持久化下来是否一定不丢这就是另外一个话题了。
http://www.hkea.cn/news/14376985/

相关文章:

  • 建设手机银行网站青岛北方现货交易平台
  • 郑州网站建设熊掌号赤壁市药监局网站建设方案
  • 网站上传图片尺寸做网站空间哪个好
  • 鸿铭物流网络建站北京网站建设 公司
  • 漯河市万金镇网站建设国内免费crm
  • 高端网站建设 炫酷衡水做网站公司
  • 潍坊网站建设品牌淄博网站设计丨致信网络
  • 忘记网站后台账号怎样优化推广
  • 广州越秀区网站建设淄博网站制作培训
  • 什么是建设型的网站网站备份脚本
  • 湖北城乡住房建设厅网站怎查证件手机笑话网站模板
  • 小说网站做公众号好还是网站好个人微信小程序怎么做
  • hishop网站搬家全国职业生涯规划大赛官网
  • 怎么做网站策划庆阳网站建设与制作
  • 建设银行网站为什么登不上附近设计公司
  • 购物网站开发意义泰州网络科技有限公司
  • 深圳宝安网站推广网站更名策划方案
  • 宁夏政务大厅城乡建设厅口网站关于网站建设公司大全
  • 茂名市城乡和住房建设局网站国外网站代做
  • 网站做支付宝和网银接口天猫商城官网下载
  • 彩票销信 网站怎么做百度 医疗网站建设
  • 福州网站制作好的企业注册资本1000万的公司需要多少钱
  • 赶集的网站怎么做做设计网站的工作内容
  • 建设电子元器件网站python 做企业网站
  • 小企业网站建设哪些好办营销推广有哪些步骤
  • 网站开发制作阶段的说课稿在线建设网站制作
  • 三明网站建设网站改版建议策划书
  • asp.net 网站开发 pdf上榜网络
  • 凡客优品家居官方网站企业信息的网站
  • 移动网站设计尺寸亚马逊网站首页