栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

IT老齐架构300讲笔记(038) MQ中间件是如何实现可靠性投递的?

IT老齐架构300讲笔记(038) MQ中间件是如何实现可靠性投递的?

目录

一、MQ中间件的通用消息投递过程有哪些情况可能会造成丢数

1.1 可能出现问题的阶段

1.2 可能出现问题的细节点

专栏链接:IT老齐架构300讲笔记专栏


一、MQ中间件的通用消息投递过程有哪些情况可能会造成丢数

1.1 可能出现问题的阶段

  • 发送阶段,遇到高延迟,Producer会多次重发消息,直到Broker ack确认,过程中Broker会自动去重,超时Producer产生异常,应用进行捕获提示。
  • 存储阶段,Broker先刷盘再ack确认,即便ack失败消息不会丢失,多次重试直到Producer接收,会导致消息积压。
  • 消费阶段,Broker向Consumer发数据,一段时间未接收,自动重发,直到Consumer Ack确认,Consumer注意幂等处理 
  •  1.2 可能出现问题的细节点

    1.异步刷盘(NSYNC_FLUSH),改同步刷盘

    2.存储介质损坏,建议采用RAID10或分布式存储

    3.不要启用自动Ack,RabbitMQ存在此问题

    4.避开都市传说ActiveMQ

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/710147.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号