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

辽宁鲲鹏建设集团网站分布式网站开发

辽宁鲲鹏建设集团网站,分布式网站开发,wordpress注册邮件自定义,网站建设朋友圈素材目录1.生产者没有成功把消息发送到MQ2.RabbitMQ接收到消息之后丢失了消息3.消费者弄丢了消息前言 首先明确一点一条消息的传送流程:生产者->MQ->消费者 我们根据这三个依次讨论 1.生产者没有成功把消息发送到MQ 丢失的原因:因为网络传输的不稳定…

目录

    • 1.生产者没有成功把消息发送到MQ
    • 2.RabbitMQ接收到消息之后丢失了消息
    • 3.消费者弄丢了消息

前言

首先明确一点一条消息的传送流程:生产者->MQ->消费者
在这里插入图片描述
我们根据这三个依次讨论

1.生产者没有成功把消息发送到MQ

丢失的原因:因为网络传输的不稳定性,当生产者在向MQ发送消息的过程中,MQ没有成功接收到消息,但是生产者却以为MQ成功接收到了消息,不会再次重复发送该消息,从而导致消息的丢失。
解决办法 :有两个解决办法:事务机制和confirm机制,最常用的是confirm机制。
事务机制和cnofirm机制最大的不同在于,事务机制是同步的,你提交一个事务之后会阻塞在那儿,但是confirm机制是异步的,你发送个消息之后就可以发送下一个消息,然后那个消息rabbitmq接收了之后会异步回调你一个接口通知你这个消息接收到了。
我们就谈谈confirm return(扩展一下)

rabbitmq 整个消息投递的路径为:
producer—>rabbitmq broker—>exchange—>queue—>consumer

消息从 producer 到 exchange 则会返回一个 confirmCallback 。
消息从 exchange–>queue 投递失败则会返回一个 returnCallback 。

confirm:使用 rabbitTemplate.setConfirmCallback 设置回调函数。当消息发送到 exchange 后回调 confirm 方法。在方法中判断 ack,如果为true,则发送成功,如果为false,则发送失败,需要处理。

return:使用 rabbitTemplate.setReturnCallback 设置退回函数,当消息从exchange 路由到 queue 失败后,如果设置了 rabbitTemplate.setMandatory(true) 参数,则会将消息退回给 producer并执行回调函数returnedMessage

2.RabbitMQ接收到消息之后丢失了消息

丢失的原因:RabbitMQ接收到生产者发送过来的消息,是存在内存中的,如果没有被消费完,此时RabbitMQ宕机了,那么再次启动的时候,原来内存中的那些消息都丢失了。
解决方案:开启RabbitMQ的持久化。当生产者把消息成功写入RabbitMQ之后,RabbitMQ就把消息持久化到磁盘。(持久化要起作用必须同时设置这两个持久化才行)

  • 持久化可以跟生产者那边的confirm机制配合起来,只有消息被持久化到磁盘之后,才会通知生产者ack了,所以哪怕是在持久化到磁盘之前,rabbitmq挂了,数据丢了,生产者收不到ack,你也是可以自己重发的。
  • 若生产者那边的confirm机制未开启的情况下,哪怕是你给rabbitmq开启了持久化机制,也有一种可能,就是这个消息写到了rabbitmq中,但是还没来得及持久化到磁盘上,结果不巧,此时rabbitmq挂了,就会导致内存里的一点点数据会丢失。

3.消费者弄丢了消息

丢失的原因:如果RabbitMQ成功的把消息发送给了消费者,那么RabbitMQ的ack机制会自动的返回成功,表明发送消息成功,下次就不会发送这个消息。但如果就在此时,消费者还没处理完该消息,然后宕机了,那么这个消息就丢失了。
解决的办法:简单来说,就是必须关闭 RabbitMQ 的自动 ack
none:自动确认,manual:手动确认
如果在消费端没有出现异常,则调用channel.basicAck(deliveryTag,true);方法确认签收消息
如果出现异常,则在catch中调用 basicNack,拒绝消息,让MQ重新发送消息。

http://www.hyszgw.com/news/44006.html

相关文章:

  • 上饶市住房和城乡建设网站怎么做免费个人网站
  • 淳安县千岛湖建设集团网站微信app制作
  • 成都网站设计创新互联硬件开发技术
  • 室内效果图网站爱折腾 wordpress
  • 网站建设如何就接入支付宝网站建站公司一站式服务
  • 上海网站建设思创做个网站页面多钱
  • 微信推送用哪个网站做玉娇龙儿wordpress
  • 做电影分享网站违法吗要钱吗
  • 网站做好怎么开始做推广万网域名续费怎么续
  • 建设企业功能型网站免费加盟一件代发货源网站
  • 营销网站建设的步骤过程兰州做网站 东方商易
  • 嘉兴哪里可以做淘宝网站网站建设推广书籍
  • htm5移动网站开发wordpress文章权限
  • 网站 被降权春节网站设计
  • 网站对接如何做自学ui设计需要多久
  • 北京4网站建设河北承德网
  • 网站开发公司人员配备WordPress自定义类排序
  • 外贸建站与推广如何做湖北省建设局网站首页
  • 网站的技术建设方案网站基础上添加建设方案模板
  • 水滴保险官方网站海门市住房和城乡建设局网站
  • 企业门户网站用户类型北京企业网站改版
  • 做网站多少钱西宁君博领衔驻马店网站开发公司
  • 什么网站做的好房屋设计图纸平面图
  • 漳州最专业的网站建设公司重庆网站建站系统哪家好
  • 浦江县城乡建设局网站杭州做宠物网站的公司哪家好
  • 眉山网站建设哪家好android 网站模板下载
  • 哈尔滨教育学会网站建设网站推广服务器怎么选
  • 海口cms建站系统贵阳哪里可以做网站
  • 凯里网站制作工业设计是干什么的
  • 网站开场flash怎么做的seo免费优化软件