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

网站建设报价清单网站建设栏目层级

网站建设报价清单,网站建设栏目层级,如何本地搭建自己的网站,seo方式包括生产者没有成功把消息发送到MQ 丢失的原因 #xff1a;因为网络传输的不稳定性#xff0c;当生产者在向MQ发送消息的过程中#xff0c;MQ没有成功接收到消息#xff0c;但是生产者却以为MQ成功接收到了消息#xff0c;不会再次重复发送该消息#xff0c;从而导致消息的丢… 生产者没有成功把消息发送到MQ 丢失的原因 因为网络传输的不稳定性当生产者在向MQ发送消息的过程中MQ没有成功接收到消息但是生产者却以为MQ成功接收到了消息不会再次重复发送该消息从而导致消息的丢失。 解决办法 有两个解决办法事务机制和confirm机制最常用的是confirm机制发布确认机制。 注意 RabbitMQ的事务机制是同步的很耗型能会降低RabbitMQ的吞吐量。 confirm机制是异步的生成者发送完一个消息之后不需要等待RabbitMQ的回调就可以发送下一个消息当RabbitMQ成功接收到消息之后会自动异步的回调生产者的一个接口返回成功与否的消息。 两个机制说明如下: confirm发布确认机制 解释RabbitMQ可以开启 confirm 模式在生产者那里设置开启 confirm 模式之后生产者每次写的消息都会分配一个唯一的 id如果消息成功写入 RabbitMQ 中RabbitMQ 会给生产者回传一个 ack 消息告诉你说这个消息 ok 了。如果 RabbitMQ 没能处理这个消息会回调你的一个 nack 接口告诉你这个消息接收失败生产者可以重新发送。而且你可以结合这个机制自己在内存里维护每个消息 id 的状态如果超过一定时间还没接收到这个消息的回调那么可以重发。 代码 yml配置 ---------------------------------------------------------------------------------------------------- import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component; /** * 交换机回滚 */ Component Slf4j public class ExchangeCallback implements RabbitTemplate.ConfirmCallback{/* correlationData 内含消息内容* ack 交换机接受成功或者失败。 true表示交换机接受消息成功 false表示交换机接受失败* cause 表示失败原因*/Overridepublic void confirm(CorrelationData correlationData, boolean ack, String cause) {System.out.println(hello world);String id correlationData.getId();String message new String(correlationData.getReturnedMessage().getBody());if (ack){log.info(交换机收到消息id为{}, 消息内容为{}, id, message);}else {log.info(交换机未收到消息id为{}, 消息内容为{}, 原因为{}, id, message, cause);}} } ----------------------------------------队列防止消息丢失---------------------------------------------------------------- import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Component;/*** 队列防止消息丢失*/ Slf4j Component public class QueueCallback implements RabbitTemplate.ReturnCallback{Overridepublic void returnedMessage(Message message,int replyCode, String replyText, String exchange, String routingKey) {log.info(消息 {} 经交换机 {} 通过routingKey{} 路由到队列失败失败code为{} 失败原因为{},new String(message.getBody()), exchange, routingKey, replyCode, replyText);} } --------------------------引用-controller----------------------------------------------- //交换机回滚 Autowired private ExchangeCallback exchangeCallback; //队列回滚 Autowired private QueueCallback queueCallback; /*** 初始化交换机监听*/ PostConstruct public void init(){ //交换机 rabbitTemplate.setConfirmCallback(exchangeCallback); /*** true交换机无法将消息进行路由时会将该消息返回给生产者* false如果发现消息无法进行路由则直接丢弃*/ rabbitTemplate.setMandatory(true); //队列 rabbitTemplate.setReturnCallback(queueCallback); } /*** 发送消息* 结果:这是一条消息*/GetMapping(/sendMessageTest)public String sendMessageTest(){// 消息类型为object 发送对象也是可以的String msg 这是一条消息;// 第一个参数为发送消息到那个交换机上第二个是发送的路由键交换机进行需要符合绑定的队列第三个参数为发送的消息 //CommonUtils.dirExchange--自己的交换机名称 //CommonUtils.routingKey --路由Key值 rabbitTemplate.convertAndSend(1235,CommonUtils.routingKey,msg);System.out.println(消息发送成功:msg);return 发送成功;发送内容为:msg;} 运行结果:
http://www.hkea.cn/news/14562647/

相关文章:

  • 谁做广东11彩票网站上海松江区网站建设
  • 新手建设网站步骤wordpress 不同侧边栏
  • 电子商务网站建设与管理总结网站建设预算方案
  • 一般找人做网站多少钱雄安网站建设单位
  • 网站首页设计报价湘潭网站设计外包公司
  • 伊利网站建设评价现货市场交易平台
  • 怎样创建网站流程工厂视频网站建设
  • 石家庄网站建设 河北供求网合肥app外包公司
  • 可信赖的武进网站建设定制一个软件要多少钱
  • 网站建设开发技术类型忻州网站建设求职简历
  • 做丝网网站哪个好芜湖做网站需要多少钱
  • 无锡哪里有做网站的公司网页制作怎么把图片放进去
  • 公司建站方案做网站卖
  • 建设官方网站心理服务网站建设内容
  • 网站的主题有哪些做视频网站需要多大的带宽
  • 电子商务网站建设方案案例淄博品质网站建设
  • 如何在微信平台做购买网站淮北市建设工程信息网
  • 网站放自己服务器备案wordpress调用文章部分内容
  • 域名注册的网站上海好公司排名前十
  • 网站建设与开发选题网站一键提交收录
  • 西安大兴医院网站建设北京网站建设app开发
  • 网站源码 和网站模板区别做素材网站服务器
  • 哪网站建设wordpress权限设置管理
  • 网站建设实训的心得的体会网页界面设计
  • 淘宝在哪个网站做推广软件承接网站建设
  • 什么网站做广告效果好网站上传
  • 有多少个购物网站网页设计师培训机构免费
  • 为网站制定推广计划免费好用wordpress主题
  • wordpress获取页面图片南宁seo网络优化公司
  • 手机公司网站建设比较好的网站设计原型图