元数据存储服务设计选型
业界主要有基于第三方存储引擎和集群内部自实现元数据存储两种方案。
基于第三方存储引擎
业界主流的分布式消息队列都是选用分布式的协调服务,如 ZooKeeper、etcd 等来当集群的元数据存储服务。所以基于第三方存储引擎的集群架构图一般是下面这样子。
集群内部自实现元数据存储
可以通过在多台 Broker 的进程中实现分布式的元数据存储,从而解决依赖第三方组件的一些弊端。整体架构如下图所示:
从技术实现来看,主要有三个思路:
- 直接在 Broker 内部构建一个小型的元数据存储集群来提供服务。
- 通过某些可以内嵌到进程的小型的分布式存储服务来完成元数据的存储。
- 通过某些可以内置的单机持久化的服务,配合节点间的元数据同步机制来完成元数据的存储。
此文章为11月Day16学习笔记,内容来源于极客时间《深入拆解消息队列 47 讲》