RobustMQ 存储层设计
接上篇的内容,为了满足各种场景,在我们的设想中,RobustMQ 插件化存储层主要由下面三种类型组成:
- 单机模式下的 RocksDB 和 Memory:主要用于standalone模式运行测试用例以及单机部署需要持久化存储的场景。
- Segment Engine: RobustMQ 内置的存储层,它是RobustMQ 核心的存储层,它是一个RobustMQ 内置的。它用来满足低延时存储的场景。
- 本地存储:本地的文件持久化分布式存储
- 外部存储:如S3(各个云的对象存储)、HDFS、MinIO,甚至MySQL、Redis等等。它
Storage Adapter
从前面的文章可以知道,RobustMQ 的存储层是通过Storage Adapter 来统一分发和存储的。可以参考文章:存储层 Storage Adapter 架构
Shard 抽象
单机模式
因为RocksDB的性能足够,所以在单机持久化部署的场景中,建议选择RocksDB存储引擎。如果是本地开发,运行测试用例,建议使用Memory。
Segment Engine:
多种类型 Shard
- 分段/不分段
- 内存存储/文件存储 它的数据是由文件分段式存储,可以选是否多副本一致性,
分层存储
分段数据存储到远程
外部存储
直接存储外部存储引擎。
