栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MQ如何保证消息可靠投递

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MQ如何保证消息可靠投递

  • MQ的组成


producer : 发送消息给Broker, 服务器将消息写入磁盘, 并发送确认请求后, 才算消息发送成功
consumer : 定时轮询Broker的消息, 抽取消息, 并返回确认请求
Broker : 接收生产者发送的消息, 消息本地存储; 消费者抽取消息返回确认请求后, 删除该消息
注意点:
生产消息, 消费消息 都是异步的

  • 各阶段保证消息可靠
    1.发送阶段: 遇到高延迟,Producer会多次重发消息,直到Broker ack确认,过程中Broker会自动去重,超时Producer产生异常,应用进行捕获提示。
    2.存储阶段: Broker先刷盘再ack确认,即便ack失败消息不会丢失,多次重试直到Producer接收,会导致消息积压。
    3.消费阶段: Broker向Consumer发数据,一段时间未接收,自动重发,直到Consumer Ack确认,Consumer注意幂等处理
    不要使用自动ack (自动确认) rabbitMq有此问题
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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