Bigtop Manager架构揭秘:Web UI与Agent协同工作的底层原理

📅 2026/7/13 1:25:54 👁️ 阅读次数 📝 编程学习
Bigtop Manager架构揭秘:Web UI与Agent协同工作的底层原理

Bigtop Manager架构揭秘:Web UI与Agent协同工作的底层原理

【免费下载链接】bigtop-managerBigtop-manager provides a modern, low-threshold web application to simplify the deployment and management of components for bigtop, similar to Apache Ambari and Cloudera Manager.项目地址: https://gitcode.com/openeuler/bigtop-manager

前往项目官网免费下载:https://ar.openeuler.org/ar/

Bigtop Manager是一个现代、低门槛的Web应用程序,专门用于简化Apache BigTop大数据组件的部署和管理。它类似于Apache Ambari和Cloudera Manager,但提供了更加现代化的用户界面和更高效的架构设计。今天我们将深入探讨Bigtop Manager的核心架构,特别是其Web UI与Agent协同工作的底层原理。

🏗️ 三层架构体系:清晰的责任分离

Bigtop Manager采用了经典的三层架构设计,确保了系统的高度可扩展性和可维护性:

1. 接口层(Interface Layer)

这是用户与系统交互的入口点,包含两个核心模块:

  • REST API模块:基于Spring Boot框架实现,提供符合OpenAPI 3.0规范的HTTP接口,位于bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/目录下
  • Web UI模块:基于Vue 3构建的现代化管理界面,位于bigtop-manager-ui/目录,使用TypeScript和Ant Design Vue组件库

Bigtop Manager的登录界面,展示了现代化的Web UI设计

2. 核心层(Core Layer)

这是系统的大脑,负责所有的业务逻辑处理:

模块核心职责关键功能
Server集群元数据管理、任务调度、全局状态维护处理所有业务逻辑,协调各个组件
Agent主机级服务生命周期管理部署、启动、停止、配置组件服务
gRPC模块实现Server与Agent间的双向通信高效的数据传输和指令下发
Stack模块组件栈定义和管理定义各种大数据组件的安装脚本和配置模板

3. 组件层(Component Layer)

这是系统的执行层,包含了各种大数据组件:

  • 支持组件:ZooKeeper、Hadoop、Kafka、Spark等
  • 扩展机制:通过Stack模块轻松添加新组件

🔄 Web UI与后端的高效通信机制

Web UI的请求流程

当用户在Web界面上执行操作时,整个请求流程如下:

  1. 用户操作触发:在Vue组件中调用API接口,如bigtop-manager-ui/src/api/cluster/index.ts中定义的getClusterList()
  2. HTTP请求发送:通过Axios库发送REST API请求到Server端
  3. Server处理:Spring Boot控制器接收请求,如ClusterController处理集群相关操作
  4. 业务逻辑执行:Service层处理具体业务,协调各个模块

实时状态监控

Web UI通过轮询机制实时获取任务状态:

// 任务日志获取示例 export const getTaskLog = (pathParams: TaskLogParams, func: Function): LogsRes => { return request({ method: 'get', url: `/clusters/${pathParams.clusterId}/jobs/${pathParams.jobId}/stages/${pathParams.stageId}/tasks/${pathParams.taskId}/log`, responseType: 'stream', timeout: 0 }) }

🤝 Server与Agent的协同工作原理

gRPC通信协议

Server和Agent之间通过gRPC协议进行高效通信,这是Bigtop Manager架构的核心创新:

Bigtop Manager的默认管理界面,展示集群状态和组件信息

gRPC服务定义

系统定义了多种gRPC服务,位于bigtop-manager-grpc/src/main/resources/proto/目录:

  1. ComponentCommandService:组件命令执行服务
  2. TaskLogService:任务日志流式传输服务
  3. ComponentStatusService:组件状态查询服务
  4. HostInfoService:主机信息获取服务
  5. JobCacheService:任务缓存管理服务
通信流程示例

以组件命令执行为例:

service ComponentCommandService { rpc Exec (ComponentCommandRequest) returns (ComponentCommandReply) {} } message ComponentCommandRequest { int64 task_id = 1; string payload = 2; }

Agent的职责与实现

每个主机上运行一个Agent实例,负责:

  1. 服务生命周期管理:启动、停止、重启组件服务
  2. 配置管理:应用配置模板,管理配置文件
  3. 状态监控:实时监控组件运行状态
  4. 日志收集:收集并传输组件运行日志

Agent的核心代码位于bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/目录,实现了各种gRPC服务的具体逻辑。

📊 任务调度与执行机制

任务处理流程

Bigtop Manager的任务处理采用分层调度机制:

  1. Job创建:Web UI或API触发任务创建
  2. Stage划分:将Job拆分为多个Stage
  3. Task分发:将Stage进一步拆分为Task,通过gRPC分发给Agent
  4. 并行执行:多个Task可以在不同主机上并行执行
  5. 状态同步:实时同步执行状态到Server

状态管理机制

系统定义了完整的任务状态机:

状态触发条件处理策略
PENDING任务创建但未调度等待调度器分配
RUNNING任务已下发到Agent监听超时阈值
SUCCESSFULAgent返回成功结果更新组件状态
FAILEDAgent返回失败结果触发重试或告警
CANCELED前置任务失败取消后续任务

🚀 架构优势与创新点

1. 高效的通信机制

  • gRPC替代HTTP:相比传统的HTTP REST API,gRPC提供了更高效的二进制通信
  • 双向流式传输:支持实时日志流和状态更新
  • 协议缓冲区:使用Protobuf进行数据序列化,减少传输开销

2. 灵活的可扩展性

  • 模块化设计:各个模块职责清晰,易于扩展
  • Stack机制:通过Stack模块轻松添加新的大数据组件
  • 插件化架构:支持自定义扩展和集成

3. 强大的监控能力

  • 实时状态同步:Web UI实时显示组件状态
  • 详细的执行日志:完整的任务执行日志记录
  • 健康检查:定期检查组件健康状态

4. 智能运维支持

  • AI辅助:集成AI功能模块,提供智能运维建议
  • 自动化部署:一键式部署和配置管理
  • 故障自愈:自动检测和修复常见问题

💡 实际应用场景

集群部署流程

  1. 环境准备:通过Web UI配置主机信息
  2. 组件选择:选择需要部署的大数据组件
  3. 配置定制:自定义组件配置参数
  4. 一键部署:启动自动化部署流程
  5. 状态监控:实时监控部署进度和结果

日常运维操作

  • 服务启停:通过Web界面轻松管理服务
  • 配置更新:在线修改配置并实时生效
  • 扩容缩容:动态调整集群规模
  • 版本升级:平滑升级组件版本

Bigtop Manager的AI功能界面,展示智能运维能力

🔧 技术栈概览

后端技术栈

  • Java 17+:主要开发语言
  • Spring Boot:Web框架
  • gRPC:服务间通信
  • MySQL:数据存储
  • Redis:缓存服务

前端技术栈

  • Vue 3:前端框架
  • TypeScript:类型安全的JavaScript
  • Ant Design Vue:UI组件库
  • Vite:构建工具
  • Pinia:状态管理

部署技术

  • Docker:容器化部署
  • Kubernetes:容器编排
  • Helm:Kubernetes包管理

🎯 总结

Bigtop Manager通过其精妙的三层架构设计,实现了Web UI与Agent的高效协同工作。Web UI提供了友好的用户界面,Server作为控制中心协调所有操作,Agent则在各个主机上执行具体任务。这种架构不仅提高了系统的可维护性和可扩展性,还确保了大数据组件的稳定运行。

通过gRPC协议的高效通信、Stack模块的灵活扩展、以及完善的监控机制,Bigtop Manager为大数据集群管理提供了一个现代化、低门槛的解决方案。无论是小型测试环境还是大型生产集群,都能通过Bigtop Manager轻松管理和维护。

如果你正在寻找一个现代化的大数据集群管理工具,Bigtop Manager绝对值得一试!🚀

【免费下载链接】bigtop-managerBigtop-manager provides a modern, low-threshold web application to simplify the deployment and management of components for bigtop, similar to Apache Ambari and Cloudera Manager.项目地址: https://gitcode.com/openeuler/bigtop-manager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考