美文网首页
「深度剖析」RocketMQ消息存储机制:如何保证消息的可靠性和

「深度剖析」RocketMQ消息存储机制:如何保证消息的可靠性和

作者: 小吴不睡觉 | 来源:发表于2023-05-18 00:11 被阅读0次

RocketMQ消息存储机制

RocketMQ是一款高可靠性、高吞吐量的消息中间件,其消息存储机制是保证消息可靠性和高效性的关键。本文将介绍RocketMQ的消息存储机制,包括Commit Log和Consume Queue两个部分。

Commit Log

Commit Log是RocketMQ的消息存储文件,用于存储所有发送到Broker的消息。每个Broker都有一个CommitLog文件夹,在该文件夹中包含多个子文件夹,每个子文件夹中包含多个CommitLog文件。每个CommitLog文件默认大小为1GB,当文件写满后,会自动创建新的文件继续写入。

每个CommitLog文件中的消息都以顺序方式写入,并包含以下信息:

  • 消息长度
  • 消息魔数(用于标识消息类型)
  • 消息主体
  • 消息属性
  • 校验和等

Commit Log的作用主要有两个:

  1. 存储所有发送到Broker的消息,并提供消息查询和检索功能。
  2. 保证消息的可靠性。每个消息在写入Commit Log后,都会进行同步刷盘和刷内存操作,确保消息被正确写入磁盘。

Consume Queue

Consume Queue是RocketMQ的消息消费队列,用于存储所有发送到订阅者的消息。每个Topic和Tag都有一个对应的Consume Queue,Consume Queue中的每个消息包含以下信息:

  • 消息偏移量
  • 消息长度
  • 消息标志(用于标识消息状态,如已消费、未消费等)
  • 消息索引
  • 校验和等

Consume Queue的作用主要有两个:

  1. 存储所有发送到订阅者的消息,并提供消息查询和检索功能。
  2. 保证消息的可靠性。每个消息在被消费后,都会进行同步刷盘和刷内存操作,确保消息被正确处理。

总结

本文介绍了RocketMQ的消息存储机制,包括Commit Log和Consume Queue两个部分。这两个部分共同保证了RocketMQ的高可靠性和高效性。希望本文能够帮助您更好地理解RocketMQ的消息存储机制。

相关文章

  • RocketMQ消息存储

    RocketMQ消息存储 1 CommitLog 要想知道RocketMQ如何存储消息,我们先看看CommitLo...

  • kafka-怎么保证消息的可靠性与一致性

    在kafka中主要通过ISR机制来保证消息的可靠性。下面通过几个问题来说明kafka如何来保证消息可靠性与一致性 ...

  • 5、RocketMQ高级功能-消息存储

    RocketMQ高级功能 消息存储 分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。 消息生成者发送消息...

  • RocketMQ如何保证消息的可靠性?

    分布式系统中一个重要的前提假设是所有的网络传输都是不可靠的,在网络传输不可靠的情况下,保证消息的可靠传输,除了进行...

  • 消息队列核心-如何保证消息不丢失

    使用消息队列,绕不开的一个问题就是如何保证消息不丢失,现在主流的消息中间件都提供了完整的消息可靠性保证机制,可以确...

  • 消息队列常见问题

    如何保证消息队列的高可用? 如何保证消息不被重复消费(幂等性问题)? 如何保证消息的可靠性传输(消息丢失问题)? ...

  • RocketMQ:至今我见过讲得最全的一篇,看完再也不担心没有实

    RocketMQ 是业内知名的消息中间件,有着金融级消息的消息可靠性保证,在性能方面不输于 Kafka。同时对比 ...

  • RocketMQ阅读笔记之消息存储

    消息存储部分是RocketMQ的重要组成部分,良好的存储机制会有效降低延迟,提高整体效率。RocketMQ利用到了...

  • 四、设计

    1 消息存储 消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架...

  • rocketMQ 设计

    1 消息存储 消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架...

网友评论

      本文标题:「深度剖析」RocketMQ消息存储机制:如何保证消息的可靠性和

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