Doris 架构
Doris 的架构很简洁,只设 FE
(Frontend
)、BE
(Backend
)两种角色、两个进程,不依赖于外部组件,方便部署和运维,FE、BE 都可线性扩展。
-
✅ Frontend(
FE
):存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行,返回查询结果。主要有三个角色:- 🚀 Leader 和 Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。
- 🚀 Observer:用来扩展查询节点,同时起到元数据备份的作用。如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加
Observer
的节点。Observer
不参与任何的写入,只参与读取。
-
✅ Backend(
BE
):负责物理数据的存储和计算;依据 FE 生成的物理计划,分布式地执行查询。数据的可靠性由 BE 保证,BE 会对整个数据存储多副本或者是三副本。副本数可根据需求动态调整。 -
✅ MySQLClient:Doris 借助 MySQL 协议,用户使用任意 MySQL 的 ODBC / JDBC 以及 MySQL 的客户端,都可以直接访问 Doris。
-
✅ Broker:Broker 为一个独立的无状态进程(是 Doris 集群中的一种可选进程)。封装了文件系统接口,提供了 Doris 读取远端存储系统中文件的能力,包括 HDFS,S3,BOS 等。