一文搞懂 Apache Doris 高可用架构:FE、BE、VIP 与基础巡检
一、Doris 是什么Apache Doris 是一款面向实时分析场景的MPP 分布式分析型数据库主要用于实时数仓、BI 报表、海量数据查询和多维分析等场景。Doris 采用典型的FE BE架构FEFrontend负责 SQL 接入、用户认证、SQL 解析与优化、元数据管理、查询调度以及 FE 节点选主。BEBackend负责实际数据存储、Tablet 管理、副本保存以及 SQL 的并行计算。可以简单理解为FE 负责“接入、管理和调度”BE 负责“存储和计算”。二、Doris 标准生产高可用架构生产环境通常采用3 个 Follower FE 多个 BE VIP/LB典型架构如下应用 / BI / ETL │ │ MySQL协议 ▼ VIP : 9030 │ KeepalivedVIP高可用 │ ┌───────────┴───────────┐ │ │ HAProxy-01 HAProxy-02 Active Standby │ │ 负载均衡 / 健康检查 ▼ ┌──────────┬──────────┐ │ │ │ FE1 FE2 FE3 FOLLOWER FOLLOWER FOLLOWER │ │ │ └──────────┼──────────┘ │ 其中1台为Master │ SQL解析 / 优化 / 调度 │ ┌────────────┼────────────┐ ▼ ▼ ▼ BE1 BE2 BE3... │ │ │ └── Tablet多副本 MPP计算 ──┘整体访问链路可以概括为应用 → VIP/LB → FE → BE三、FE 高可用机制FE 主要负责SQL 接入用户认证与权限管理SQL 解析与优化元数据管理查询任务调度Master 选举标准生产环境通常部署3 个 FOLLOWER FE例如FE1 FOLLOWER FE2 FOLLOWER FE3 FOLLOWER ← 当前Master需要注意Master 并不是独立的一种 FE 类型而是从 Follower 中选举出来的。当当前 Master 故障时其余 Follower 可以重新选举新的 Master。3 个 Follower 中只要剩余 2 个正常就仍然具备多数派因此可以容忍 1 个 FE 故障。所以生产环境中最常见的是3 个 Follower FE其中 1 台为 Master另外 2 台为 Follower。FE 选举依赖多数派因此参与选举的 Follower 数量通常采用奇数如3 5 7小中型 Doris 集群最常见的是3 个 Follower。四、BE 高可用机制BE 主要负责数据存储Tablet 管理数据副本SQL 扫描聚合、过滤、JoinMPP 并行计算BE 和 FE 不同BE 不要求节点数量必须为奇数。可以部署3台 4台 5台 6台 ……具体数量根据数据容量、查询并发和性能要求决定。BE 的高可用核心是Tablet 多副本。例如一个 Tablet 配置 3 个副本Tablet A ├── 副本1 → BE1 ├── 副本2 → BE2 └── 副本3 → BE3当其中一台 BE 故障时其他 BE 上仍然保存着该 Tablet 的副本。因此可以简单记住FE 高可用靠 Follower 多数派选举。BE 高可用靠 Tablet 多副本。五、为什么生产环境要增加 VIP / LB虽然应用可以直接连接某一台 FE应用 → FE1:9030但生产环境不建议长期固定绑定单个 FE。因为 FE 可能发生节点故障服务重启计划维护Master 切换因此推荐使用统一访问入口应用 │ ▼ VIP : 9030 │ 负载均衡层 │ ┌────────┼────────┐ ▼ ▼ ▼ FE1 FE2 FE3 :9030 :9030 :9030应用只需要连接VIP:9030不需要关心当前哪一台FE是Master也不建议应用固定连接当前 Master。六、Keepalived 和 VIP 是什么关系VIP 本身只是一个统一访问地址。如果是自建高可用入口常见组合是Keepalived HAProxy或者Keepalived Nginx它们的职责不同。Keepalived主要负责VIP漂移例如LB1 正常 VIP → LB1当 LB1 故障LB1 × ↓ VIP自动漂移 ↓ LB2因此 Keepalived 解决的是VIP 本身不能成为单点。HAProxy / Nginx主要负责FE 健康检查TCP 连接转发将连接分发到多个正常 FE所以完整链路通常是应用 ↓ VIP ↓ Keepalived ↓ HAProxy / Nginx ↓ FE1 / FE2 / FE3如果企业已经使用F5LVS硬件负载均衡云 LB则不一定需要单独部署 Keepalived。因此Keepalived 不是 Doris 必需组件而是实现 VIP 高可用的一种常见方案。七、为什么 Doris 可以使用 mysql 登录Doris 本身不是 MySQL。但是 Doris FE 兼容MySQL Wire Protocol所以可以直接使用 MySQL 客户端连接。例如mysql -h VIP地址 -P 9030 -u用户名 -p连接关系MySQL客户端 │ │ MySQL协议 ▼ Doris FE : 9030因此登录时即使看到mysql或者Server version: 5.7.99 Doris version ...也不代表 Doris 是 MySQL。准确理解应该是Doris 兼容 MySQL 通信协议因此可以使用 mysql、JDBC、DBeaver、DataGrip 等工具连接。八、登录 Doris通常通过 FE 的9030端口登录。通过 VIPmysql -h VIP地址 -P 9030 -u管理员用户 -p也可以直接连接某个 FE 进行运维检查mysql -h FE地址 -P 9030 -u管理员用户 -p九、登录后查看 Doris 版本SELECT VERSION();建议巡检时首先确认 Doris 版本不同大版本之间部分命令和功能可能存在差异。十、查看有几个 FE执行SHOW FRONTENDS;重点关注Host / IP Role IsMaster Alive LastHeartbeat ErrMsg Version标准生产架构通常类似FE1 FOLLOWER IsMasterfalse Alivetrue FE2 FOLLOWER IsMasterfalse Alivetrue FE3 FOLLOWER IsMastertrue Alivetrue通过这个命令可以快速确认FE 一共有几台哪台是当前 MasterFE 是否全部存活FE 角色是否正常FE 版本是否一致是否存在异常信息正常情况下重点关注Alive true ErrMsg 空十一、查看有几个 BE执行SHOW BACKENDS;有多少条 BE 记录就代表当前集群注册了多少个 BE。例如BE1 Alivetrue BE2 Alivetrue BE3 Alivetrue BE4 Alivetrue BE5 Alivetrue则表示BE数量 5重点关注Alive TabletNum DataUsedCapacity AvailCapacity UsedPct MaxDiskUsedPct HeartbeatFailureCounter ErrMsg其中Alivetrue代表 BE 正常存活。TabletNum查看各 BE 上 Tablet 数量是否明显失衡。例如BE1 1500 BE2 1520 BE3 1490整体比较均衡。UsedPct / MaxDiskUsedPct用于判断 BE 数据盘空间是否存在压力或倾斜。HeartbeatFailureCounter正常情况下通常应为0持续增加需要关注 FE 与 BE 之间的网络、进程或节点状态。十二、基础巡检常用命令登录后一轮基础检查可以执行SELECT VERSION(); SHOW FRONTENDS; SHOW BACKENDS; SHOW DATABASES; SHOW PROCESSLIST;其中最核心的是SHOW FRONTENDS; SHOW BACKENDS;通过这两个命令基本就可以快速判断FE有几台 谁是Master FE是否全部Alive BE有几台 BE是否全部Alive Tablet是否均衡 磁盘是否健康 是否存在异常心跳十三、标准生产架构核心总结一套典型的 Doris 生产高可用架构可以理解为应用 │ ▼ VIP │ Keepalived │ HAProxy/Nginx │ ┌───────────┼───────────┐ ▼ ▼ ▼ FE1 FE2 FE3 FOLLOWER FOLLOWER FOLLOWER │ 其中1台Master │ SQL解析 / 优化 / 调度 │ ┌─────┬──────┼──────┬─────┐ ▼ ▼ ▼ ▼ ▼ BE1 BE2 BE3 BE4 BE5 │ │ │ │ │ └── Tablet多副本 MPP计算 ──┘核心记住五句话即可Doris 是 FE BE 的分布式 MPP 分析型数据库。FE 负责 SQL 接入、元数据和调度生产通常部署 3 个 Follower其中 1 个自动成为 Master。BE 负责数据存储和计算节点数量不要求奇数数据高可用依赖 Tablet 多副本。应用生产接入建议通过 VIP/LB 访问 FE 的 9030不直接连接 BE也不固定连接当前 Master。Keepalived 可以负责 VIP 漂移HAProxy/Nginx 负责多个 FE 的健康检查和连接分发。

相关新闻

OpenCV+深度学习实现背景去除:从模型选型到后处理避坑指南

OpenCV+深度学习实现背景去除:从模型选型到后处理避坑指南

简介:一份基于OpenCV与深度学习的图像背景去除Python项目代码,适用于需要批量处理人像或物体抠图的算法学习者、计算机视觉初学者,也可作为课程设计或项目复现的参考。资源面向Python 3.6.5环境,在Windows 10下调试通过&#xff0…

2026/9/24 22:17:19 阅读更多 →
PDF合同信息抽取实战:小模型+解析工具+规则兜底,准确率98%

PDF合同信息抽取实战:小模型+解析工具+规则兜底,准确率98%

PDF 小模型提取,别急着上大模型,先把链路跑通再说。先说下我自己的背景:这几年一直在做金融文档处理相关的AI工程,处理过不少基金合同、贸易合同、确权文件之类的扫描件。这类项目的典型诉求就一句话:把几千份甚至几十…

2026/9/24 22:17:19 阅读更多 →
Visual Studio中配置SDL2的完整指南:从下载避坑到链接错误排查

Visual Studio中配置SDL2的完整指南:从下载避坑到链接错误排查

很多人第一次在Visual Studio里配置SDL2时,最直观的感受就是——明明照着教程一步步点,最后还是一堆LNK开头的错误满天飞。我在帮几个朋友搭建SDL2环境时,几乎每次都会遇到同样的问题:不是找不到SDL2.lib,就是x86和x64…

2026/9/24 22:17:19 阅读更多 →

最新新闻

Ricon组态系统:工业物联网协议转换与MQTT/WebSocket双通道数据中枢

Ricon组态系统:工业物联网协议转换与MQTT/WebSocket双通道数据中枢

1. Ricon组态系统不是“又一个可视化工具”,而是物联网现场的协议翻译官很多人第一次听说Ricon组态系统,下意识会把它归类为“类似组态王、力控、WinCC那样的工业画面组态软件”——能拖拉控件、画流程图、点动按钮、看实时曲线。这种理解没错&#xff0…

2026/9/24 23:00:53 阅读更多 →
一文读懂程序里的魔数:从0xCCCCCCCC到0xDEADBEEF

一文读懂程序里的魔数:从0xCCCCCCCC到0xDEADBEEF

我第一次认真琢磨“魔数”这件事,是在一个Windows崩溃现场:程序Debug版一启动就挂,调用栈里全是0xCCCCCCCC,变量窗口里也都是这个值。带我的同事扫了一眼,直接判断“栈上变量没初始化,编译器下了毒”。我当…

2026/9/24 23:00:53 阅读更多 →
Qt与OpenCV图像视觉框架源码解析:从环境搭建到多线程架构

Qt与OpenCV图像视觉框架源码解析:从环境搭建到多线程架构

项目标题: Qt OpenCV图像视觉框架源码探秘项目正文: 基于标题及热词网络搜索的内容关键词: Qt, OpenCV, 图像视觉框架, 源码做图像视觉开发这些年,有件事我越来越确定:OpenCV只是工具箱,Qt才是把整个视觉系统真正撑起来的那个“骨架”。很多…

2026/9/24 23:00:53 阅读更多 →
Qt+OpenCV图像视觉框架:核心机制、构建部署与常见坑解析

Qt+OpenCV图像视觉框架:核心机制、构建部署与常见坑解析

Qt OpenCV做图像视觉框架这件事,很多做上位机、工业检测、机器人项目的朋友迟早都会碰上。我见过太多人把OpenCV的demo跑通了,到Qt里一集成就各种翻车:要么图像显示黑屏,要么界面卡死,要么打包到别的机器上直接缺DLL跑…

2026/9/24 23:00:53 阅读更多 →
Eudemon1000E密码遗忘恢复:从BootROM到配置找回全指南

Eudemon1000E密码遗忘恢复:从BootROM到配置找回全指南

当你发现 Eudemon1000E 的登录密码被遗忘时,通常不是一瞬间的事,而是某天打开终端准备改一条安全策略,敲回车,弹出 Login / Password,你翻遍手机备忘录和抽屉里的标签纸,试了七八个似是而非的密码&#xff…

2026/9/24 23:00:52 阅读更多 →
Google API HTTP-JSON 错误模式解析:gax-go apierror 内部 proto 包与 protobuf 代码再生成指南

Google API HTTP-JSON 错误模式解析:gax-go apierror 内部 proto 包与 protobuf 代码再生成指南

人工智能AI AgentAgent 沙箱云原生容器运行时零信任 【免费下载链接】substrate Agent Substrate: the core system 项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate 点击查看 免费下载 导读 本文聚焦当前仓库 vendored 依赖 github.com/goo…

2026/9/24 22:59:52 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →