美文网首页
05-如何确保消息不会丢失

05-如何确保消息不会丢失

作者: weylau | 来源:发表于2019-08-13 15:35 被阅读0次

    检测消息是否丢失的方法

    • 类似于分布式链路系统追踪
    • 利用消息的有序性来验证消息是否丢失

    确保消息可靠传递

    消息传递的三个阶段
    • 生产阶段

    在生产阶段,生产者与broker之间主要通过请求确认机制来保证消息可靠传输,也就是说生产者只要收到broker的确认消息就代表消息发送成功

    发送消息时,需要正确处理返回值或捕获异常

    • 存储阶段

    在正常情况下,只要broker正常运行就不会出现消息丢失,但如果宕机就会可能出现消息丢失

    可以通过配置broker参数来避免因宕机消息丢失

    对于单个节点的 Broker,需要配置 Broker 参数,在收到消息后,将消息写入磁盘后再给 Producer 返回确认响应,这样即使发生宕机,由于消息已经被写入磁盘,就不会丢失消息。

    • 消费阶段

    消费阶段采取和生产阶段相同方式处理,消费者从broker拉取消息后,业务逻辑处理成功后再向broker发送消息确认响应

    不要在收到消息后就立即发送消费确认,而是应该在执行完所有消费业务逻辑之后,再发送消费确认。

    内容来源说明:文章中的部分内容以及图片来自《极客时间-消息队列高手课》,写文章目的只是作为学习后的总结和整理

    相关文章

      网友评论

          本文标题:05-如何确保消息不会丢失

          本文链接:https://www.haomeiwen.com/subject/bfspjctx.html