轻量级Kafka集群管理工具
前言
由于在工作中有用到一个三节点的小型Kafka集群但没有找到合适的管理工具来管理Topic和Connect,于是便想着自己开发一个包含我常用基础功能的轻量级Kafka管理工具。该工具通过spring boot创建Kafka Client及Connect API来实现核心功能并增加用户登录,日志持久化等功能。以下是该工具详细介绍文档。
项目地址
DL Kafka Manager
一款基于Spring Boot的轻量级Kafka管理工具,提供集群监控、Topic管理、Connect管理、操作记录、用户管理等功能
功能特性
DL Kafka Manager是一个功能完善的Kafka管理平台,提供了以下核心功能:
📊 集群监控
- 实时监控Kafka集群状态
- ZooKeeper连接状态检查
- 系统资源使用情况监控
- 集群健康度检查
📦 Topic管理
- 创建、删除Topic
- 查看Topic列表及详细信息
- Topic配置管理
- 分区信息查看
🔌 Connect管理
- Connector列表查看
- Connector详细信息展示
- Connector操作(暂停、恢复、重启、删除)
- Connector任务管理
👥 用户管理
- 用户认证与授权
- JWT Token安全机制
- 用户角色管理(管理员/普通用户)
- 用户信息维护
📝 操作日志
- 完整的操作日志记录
- 日志查询与筛选
- 分页展示操作记录
界面预览
以下为界面效果预览,实际界面以运行结果为准
登录页

仪表板

Topic管理

Connect管理

集群监控

操作日志

用户管理

支持版本
Kafka版本兼容性
本工具基于 Apache Kafka Client 2.8.1 开发,通常可兼容以下Kafka版本:
- Kafka 0.10.0及以上版本
- Kafka 1.x 版本
- Kafka 2.x 版本
- Kafka 3.x 版本(部分功能可能受限)
⚠️ 注意:不同版本的Kafka可能存在API差异,建议在生产环境中使用前进行充分测试。
环境依赖
- JDK: 8+
- Maven: 3.6+
- MySQL: 5.7+
- 操作系统: Windows/Linux/macOS
快速开始
环境要求
- JDK 8+
- Maven 3.6+
- MySQL 5.7+
- Kafka集群(0.10.0+)
安装步骤
- 克隆项目代码:
git clone https://gitee.com/wafwitness/dl-kafka-manager.git
cd dl-kafka-manager
- 初始化数据库:
-- 执行 init-mysql.sql 脚本创建数据库和用户
CREATE DATABASE IF NOT EXISTS kafka_manager
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;CREATE USER IF NOT EXISTS 'kafka_manager'@'localhost' IDENTIFIED BY 'kafka_manager123';GRANT ALL PRIVILEGES ON kafka_manager.* TO 'kafka_manager'@'localhost';
FLUSH PRIVILEGES;
- 修改配置文件:
编辑 application.yml文件,配置数据库连接、Kafka集群地址等信息:
spring:datasource:url: jdbc:mysql://localhost:3306/kafka_manager?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghaiusername: kafka_managerpassword: kafka_manager123kafka:bootstrap:servers: localhost:9092connect:url: http://localhost:8083
- 编译打包:
mvn clean package
- 运行应用:
java -jar target/dl-kafka-manager-0.0.1-SNAPSHOT.jar
- 访问应用:
打开浏览器访问 http://localhost:8081
默认管理员账号:admin/admin123
免责声明
⚠️ 重要提示
DL Kafka Manager是一个轻量级的Kafka集群管理工具,适用于开发和测试环境。
-
生产环境使用风险:
- 本工具为轻量级管理平台,功能相对简单,未经过大规模生产环境的严格验证
- 在生产环境中使用前,请务必进行充分的测试和验证
- 任何因使用本工具而导致的系统故障、数据丢失等问题,使用者需自行承担全部责任
-
功能限制:
- 本工具不提供数据恢复功能
- 不保证所有Kafka版本的完全兼容性
- 某些高级Kafka功能可能未完全支持
-
责任范围:
- 本工具按"现状"提供,不提供任何形式的担保
- 开发者不对因使用本工具而产生的任何直接、间接或 consequential 损失负责
- 使用者应自行承担使用本工具的所有风险
-
建议:
- 生产环境中建议使用官方提供的管理工具如 Kafka Manager (CMAK)、Confluent Control Center等
- 如需在生产环境中使用本工具,请先在测试环境中进行全面测试
技术架构
后端技术栈
- Spring Boot 2.6.13: 快速开发框架
- Spring Security: 安全认证与授权
- MyBatis: 数据库访问层
- JWT: Token认证机制
- Thymeleaf: 服务端页面模板引擎
- Apache Kafka Client: Kafka连接与操作
前端技术栈
- HTML/CSS/JavaScript: 基础前端技术
- 原生JavaScript: 无框架依赖的前端交互
- 响应式设计: 适配不同屏幕尺寸
数据存储
- MySQL: 用户信息和操作日志存储
开发指南
项目结构
src/main/java/com/dl/kafkamanager/dlkafkamanager
├── annotation/ # 自定义注解
├── aspectj/ # AOP切面处理
├── common/ # 通用类(响应、分页等)
├── config/ # 配置类
├── controller/ # 控制器
│ ├── kafka/ # Kafka相关API
│ └── system/ # 系统相关API
├── entity/ # 实体类
├── handler/ # 异常处理器
├── mapper/ # MyBatis Mapper接口
├── security/ # 安全相关
├── service/ # 业务逻辑层
│ └── impl/ # 业务逻辑实现
└── util/ # 工具类
核心功能模块
认证授权
- 使用JWT Token进行用户认证
- Spring Security实现权限控制
- 用户密码BCrypt加密存储
Kafka操作
- 基于Kafka AdminClient实现Topic管理
- 调用Kafka Connect REST API实现Connector管理
- 集群信息获取与监控
日志记录
- 使用AOP切面自动记录操作日志
- @Log注解标记需要记录的操作
- 操作日志持久化到MySQL数据库
功能新增
添加新的API接口
- 在对应的Controller类中添加新的请求映射方法
- 在Service层实现业务逻辑
- 如需记录操作日志,添加@Log注解
添加新的页面
- 在templates目录下创建新的HTML文件
- 参考现有页面结构和样式
- 添加对应的Controller路由
扩展监控功能
- 修改ClusterMonitorService
- 添加新的监控指标获取方法
- 在前端页面展示新的监控数据
构建与部署
# 本地运行
mvn spring-boot:run# 打包部署
mvn clean package
java -jar target/dl-kafka-manager-0.0.1-SNAPSHOT.jar
