Skip to content

RobustMQ 存储层设计

接上篇的内容,为了满足各种场景,在我们的设想中,RobustMQ 插件化存储层主要由下面三种类型组成:

  1. 单机模式下的 RocksDB 和 Memory:主要用于standalone模式运行测试用例以及单机部署需要持久化存储的场景。
  2. Segment Engine: RobustMQ 内置的存储层,它是RobustMQ 核心的存储层,它是一个RobustMQ 内置的。它用来满足低延时存储的场景。
    1. 本地存储:本地的文件持久化分布式存储
    2. 外部存储:如S3(各个云的对象存储)、HDFS、MinIO,甚至MySQL、Redis等等。它

Storage Adapter

从前面的文章可以知道,RobustMQ 的存储层是通过Storage Adapter 来统一分发和存储的。可以参考文章:存储层 Storage Adapter 架构

Shard 抽象

单机模式

因为RocksDB的性能足够,所以在单机持久化部署的场景中,建议选择RocksDB存储引擎。如果是本地开发,运行测试用例,建议使用Memory。

Segment Engine:

多种类型 Shard

  1. 分段/不分段
  2. 内存存储/文件存储 它的数据是由文件分段式存储,可以选是否多副本一致性,

分层存储

分段数据存储到远程

外部存储

直接存储外部存储引擎。