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

做农资的网站运城市盐湖区姚孟精诚网站开发中心

做农资的网站,运城市盐湖区姚孟精诚网站开发中心,公司网站百度搜不到,325建筑兼职网目录 1. 为什么消息队列会丢消息? 2. 怎么保障消息可靠传递? 2.1 生产者不丢消息 2.2 服务端不丢消息 2.3 消费者不丢消息 3. 消息丢失如何快速止损? 3.1 完善监控 3.2 完善止损工具 1. 为什么消息队列会丢消息? 现在主流…

目录

1. 为什么消息队列会丢消息?

2. 怎么保障消息可靠传递?

2.1 生产者不丢消息

2.2 服务端不丢消息

2.3 消费者不丢消息

3. 消息丢失如何快速止损?

3.1 完善监控

3.2 完善止损工具


1. 为什么消息队列会丢消息?

现在主流的消息队列都会提供完善的高可用解决方案,但是我们依然会有多种原因导致消息丢失,可能得原因包括:生产者生产消息失败、服务端存储消息失败、消费者消息处理失败。

其中常见的生产者生产消息失败的原因包括:

  • 消息体过大
  • 网络传输异常
  • 配置错误(例如:topic配置错误)
  • 生产者应用程序异常

服务端存储消息失败的常见原因包括:

  • 配置问题(例如:高性能方面考虑,未配置主从同步、未配置持久化)
  • 存储空间不足/存储介质故障

消费者消息处理失败的常见原因包括:

  • 消费者应用程序异常;
  • 消费者处理超时;
  • 消费过程中出现服务重启等问题;

2. 怎么保障消息可靠传递?

2.1 生产者不丢消息

  • 快速重试:在程序设计时,需要关注异常处理机制,我们需要遵循的原则是:异常处理 + 自动重试 + 告警(缺一不可),详细展开讲就是:1、任何系统异常,避免在不确定情况下随意捕获异常,从而导致被错误”兜底“处理。2、在生产消息异常情况下,需要支持异常情况下的自动重试,且多次重试需要有一定间隔时间。(此方案要求消费者幂等)3、遇到预期之外的异常及时埋点、告警等。
  • 消息补偿:引入"异常补偿服务",通过异常补偿服务收集生产者、消费者的异常消息进行持久化 + 重试。

2.2 服务端不丢消息

MQ Cluster不丢消息关键参考消息队列高可用方案,总结下来就是:

  • 持久化:持久化的目的是在服务故障或宕机时,消息不会丢失。对于RabbitMQ、Kafka、RocketMQ等不同的消息队列,除了消息日志被持久化之外,还需要关注元数据的持久化(例如:RabbitMQ中的Exchange元数据、Queue元数据等)、偏移量的持久化等。
  • 消息备份:RabbitMQ、Kafka、RocketMQ都支持消息备份,但是消息备份机制上存在一些差异,Kafka是针对每个分区都有主副本和多个从副本,RabbitMQ是采用镜像队列的方式,RocketMQ是每个消息主题都有主节点和多个从节点。
  • ACK确认机制:RabbitMQ、Kafka、RocketMQ在消息的ACK确认机制上差异不大,区别在于Kafka是基于分区的消息提交机制,也即某个分区所有消息消费完成后进行ACK;RabbitMQ是基于消费者的消息确认机制,即只有当消费者成功消费并处理了某条消息后,才会进行ACK确认;RocketMQ采用基于消费者组的消息确认机制,即只有当某个消费者组中所有消费者都成功消费并处理了某条消息后,才会进行确认。

2.3 消费者不丢消息

  • 快速重试:类似于生产者的解决方案,对于消息消费的异常需要感知并进行重试。在消费者的重试上需要注意:1、消息的重试次数需要有限,避免无限重试影响后续的消费;2、消息的消费需要幂等,避免前一次消费正常,再次消费时出现错误。
  • 监控消息:除了正常的消费队列,引入延迟的监控队列,在监控队列中通过状态等属性,监听消费者处理的正确性,对于消费异常的情况可以发送补偿消息。

3. 消息丢失如何快速止损?

3.1 完善监控

  • 实时监控:就是无论是生产者,还是消费者都需要及时捕获处理异常,并进行告警处理。
  • 旁路监控:就是引入监控队列/定时任务的方案,检查生产者与消费者的数据一致性,对于生产者与消费者数据不一致的场景进行及时告警处理。
  • 趋势监控:趋势监控是一种发现大规模问题的方法,也即埋点记录每一秒钟/每一分钟发出去的消息数,若代码变更后导致生产消息数/消费消息数明显降低,则需要及时关注进行处理。

3.2 完善止损工具

  • 消息生产工具:在日常开发中,建议养成在生产者发送消息前打印消息体日志的习惯。在发现数据异常后,可以重新手动发送消息。
  • 数据检查/回退工具:止损工具大家容易想到把消息重新生产一遍,也知道消息的消费需要具有幂等性。但是生产环境通常比较复杂,偶尔会产生一些异常数据导致消息生产/消费失败,或者消息处理一半产生预料之外的脏数据。这里建议建设相关一些数据快速回退工具、数据正确性工具,加快故障处理速度。

http://www.yayakq.cn/news/19464/

相关文章:

  • 一千元左右最好的手机网站优化排名推荐
  • 织梦网站换空间上海网站建设电话
  • wordpress站群远程管理软件策划案网站构成怎么写
  • 农业建设公司网站苏州建设网站微信公众号
  • 站长工具查询当地自己的淘宝网站怎么做
  • 怎样查看一个wordpress网站插件做个网页需要多少钱
  • 自己做网站怎么做的什么是营销
  • 建设部网站 法规jsp简述网站开发流程
  • 购物网站名字大全wordpress分类调用
  • 桐庐县网站建设个人简历通用免费模板
  • 福州网站建设托管郑州网站推广策
  • 萧山建站杭州seo排名
  • 上海建设银行网站转账记录查询优秀 响应式网站
  • 专门做礼品的网站环境设计排版素材网站
  • 做跨国婚恋网站赚钱吗网站建设前期策划
  • 怎么做有邀请码的网站如何用框架做网站
  • 南通门户网站建设昆明公司建设网站
  • 百度云网站空间建设做影视剧组演员垂直平台网站
  • 海珠做网站公司百度ip地址
  • 网站内链是什么 怎么做网站代运营公司
  • 邢台建设网站公司南昌房地产网站建设
  • wordpress获取指定图片网站不备案做优化
  • 哈尔滨优惠的网站建设wordpress不能重置密码
  • 新乡网站优化公司价格兰州优化官网
  • 用手机做网站重庆网站备案多久
  • 北京优化词网站网站建设情况 报告
  • 广州网站建立国外营销网站建设
  • 成都网站排名优化南宁seo优势
  • 网站建设概况排名优化seo
  • 宁波网站推广专业服务江西省历史建筑信息平台