Kafka-Eagle监控与Kraft模式 Kafka-Eagle监控与Kraft模式本篇介绍Kafka集群监控工具Kafka-Eagle的安装部署与使用以及Kafka-Kraft模式的架构原理与集群部署方式。参考课程尚硅谷大数据技术之KafkaV3.0.01. Kafka-Eagle简介Kafka-Eagle简称EFAKEagle For Apache Kafka是一个开源的Kafka集群监控框架可以监控Kafka集群的整体运行情况在生产环境中经常使用。主要功能包括集群整体状态监控Broker数量、Topic数量、消费者组数量Topic的消息量、容量、分区分布情况消费者组的消费进度和积压情况支持通过SQL方式查询Topic中的消息Kafka-Eagle的安装依赖MySQLMySQL用于存储可视化展示所需的数据。官网地址https://www.kafka-eagle.org/2. Kafka-Eagle安装部署2.1 修改Kafka启动脚本Kafka-Eagle通过JMX接口采集Kafka的监控数据需要在Kafka启动脚本中开启JMX并调整堆内存配置。修改bin/kafka-server-start.sh将原来的if[x$KAFKA_HEAP_OPTSx];thenexportKAFKA_HEAP_OPTS-Xmx1G -Xms1Gfi修改为if[x$KAFKA_HEAP_OPTSx];thenexportKAFKA_HEAP_OPTS-server -Xms2G -Xmx2G -XX:PermSize128m \ -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:ParallelGCThreads8 \ -XX:ConcGCThreads5 -XX:InitiatingHeapOccupancyPercent70exportJMX_PORT9999fi修改后需要分发到其他节点重启Kafka集群生效。2.2 关键配置项说明Kafka-Eagle的配置文件为/opt/module/efak/conf/system-config.properties关键配置项说明如下# Zookeeper集群地址需要指定到/kafka节点 efak.zk.cluster.aliascluster1 cluster1.zk.listhadoop102:2181,hadoop103:2181,hadoop104:2181/kafka # Broker数量 cluster1.efak.broker.size20 # EFAK Web界面端口 efak.webui.port8048 # offset存储位置存在Kafka中 cluster1.efak.offset.storagekafka # 监控数据保留天数 efak.metrics.retain15 # 连接MySQL的配置用于存储监控数据 efak.drivercom.mysql.jdbc.Driver efak.urljdbc:mysql://hadoop102:3306/ke?useUnicodetruecharacterEncodingUTF-8zeroDateTimeBehaviorconvertToNull efak.usernameroot efak.password1234562.3 添加环境变量# 在/etc/profile.d/my_env.sh中添加exportKE_HOME/opt/module/efakexportPATH$PATH:$KE_HOME/bin2.4 启动与停止启动前需要先确保Zookeeper和Kafka集群已经启动# 启动bin/ke.sh start# 停止bin/ke.sh stop启动成功后访问地址http://hadoop102:8048默认账号admin默认密码123456。3. Kafka-Eagle页面功能登录后进入Dashboard页面主要展示以下信息BROKERS当前在线的Broker数量TOPICS集群中的Topic总数ZOOKEEPERSZookeeper节点数量CONSUMERGROUPS消费者组数量Topic LogSize Top10消息量最大的10个TopicTopic Capacity Top10占用存储空间最大的10个TopicBScreen大屏页面/bs以可视化图表的形式展示最近7天的生产者和消费者消息量趋势、当前吞吐量、Topic总容量等实时监控数据。4. Kafka-Kraft模式4.1 现有架构的问题Kafka现有架构中元数据存储在Zookeeper中运行时动态选举Controller由Controller负责Kafka集群管理。这种架构存在以下问题Kafka强依赖Zookeeper外部框架部署和运维成本高Controller管理集群时需要先从Zookeeper读取元数据增加了延迟集群扩展时受到Zookeeper读写能力的限制Controller是动态选举产生的无法针对性地对其进行配置优化4.2 Kraft模式的改进Kraft模式实验性用三台Controller节点代替Zookeeper元数据直接保存在Controller中由Controller进行Kafka集群管理不再依赖外部框架。相比Zookeeper模式的优势Kafka能够独立运行不再依赖ZookeeperController管理集群时直接读取本地元数据性能提升集群扩展不受Zookeeper读写能力限制Controller由配置文件指定而非动态选举可以针对性地加强Controller节点配置5. Kafka-Kraft集群部署5.1 关键配置项说明Kraft模式的配置文件为config/kraft/server.properties关键配置项如下# 节点角色broker负责存储数据controller负责集群管理类似Zookeeper功能 process.rolesbroker, controller # 节点ID集群中唯一需要与controller.quorum.voters对应 node.id2 # Controller服务协议别名 controller.listener.namesCONTROLLER # 全部Controller节点列表格式为 节点ID主机名:端口 controller.quorum.voters2hadoop102:9093,3hadoop103:9093,4hadoop104:9093 # 不同服务绑定的端口 listenersPLAINTEXT://:9092,CONTROLLER://:9093 # broker对外暴露的地址各节点需要修改为自己的主机名 advertised.listenersPLAINTEXT://hadoop102:9092 # Kafka数据存储目录 log.dirs/opt/module/kafka2/data注意分发到hadoop103和hadoop104后需要分别修改node.id和advertised.listenersnode.id的值需要与controller.quorum.voters中对应节点的ID一致。5.2 初始化集群数据目录Kraft模式不依赖Zookeeper需要为集群生成唯一的存储ID并格式化数据目录# 第一步生成集群唯一存储IDbin/kafka-storage.sh random-uuid# 输出示例J7s9e8PPTKOO47PxzI39VA# 第二步在三台节点上分别用该ID格式化数据目录bin/kafka-storage.shformat-tJ7s9e8PPTKOO47PxzI39VA\-c/opt/module/kafka2/config/kraft/server.properties三台节点必须使用同一个存储ID否则无法组成集群。5.3 启动与停止# 启动三台节点分别执行bin/kafka-server-start.sh-daemonconfig/kraft/server.properties# 停止三台节点分别执行bin/kafka-server-stop.sh可以将启动和停止命令封装成脚本kf2.sh通过kf2.sh start和kf2.sh stop统一管理三台节点#! /bin/bashcase$1instart){foriinhadoop102 hadoop103 hadoop104doecho-------- 启动$iKafka2 -------ssh$i/opt/module/kafka2/bin/kafka-server-start.sh \ -daemon /opt/module/kafka2/config/kraft/server.propertiesdone};;stop){foriinhadoop102 hadoop103 hadoop104doecho-------- 停止$iKafka2 -------ssh$i/opt/module/kafka2/bin/kafka-server-stop.shdone};;esac小结Kafka-Eagle解决了Kafka集群可观测性的问题通过可视化界面让集群状态、消息流量、消费积压一目了然是生产环境运维的重要工具。Kafka-Kraft模式则是Kafka架构演进的方向通过去除对Zookeeper的依赖简化了部署复杂度同时提升了集群的性能和扩展能力。目前Kraft模式仍处于实验阶段生产环境暂时以Zookeeper模式为主。

相关新闻

最新新闻

Ceph 架构复杂?轻量级统一存储 PowerFS 技术方案解析

Ceph 架构复杂?轻量级统一存储 PowerFS 技术方案解析

文章导读Ceph 是一款成熟通用分布式存储系统,适配大规模集群场景,完整支持块、文件、对象多协议存储。但对于中小规模 AI 训练集群、高校 HPC 超算、混合负载数据平台,完整部署整套 Ceph 架构会带来较高运维门槛,同时原生缺少 KV …

2026/7/9 12:32:05
昇腾 PyTorch 模型迁移实战:3步将 GPU 代码适配 NPU,吞吐提升 1.8 倍

昇腾 PyTorch 模型迁移实战:3步将 GPU 代码适配 NPU,吞吐提升 1.8 倍

昇腾 PyTorch 模型迁移实战:3步极简改造实现性能跃迁当我在华为云AI训练平台上第一次看到昇腾NPU的实测数据时,那个1.8倍的吞吐量提升数字确实让人眼前一亮。作为长期使用NVIDIA GPU的开发者,我们早已习惯了CUDA生态的"舒适区"&…

2026/7/9 12:32:05
计算机毕业设计之考研交流平台

计算机毕业设计之考研交流平台

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,考研交流平台当然也不能排除在外,从备考资料、课程学习的统计和分析,在过程中会产生大量的、各种各样的…

2026/7/9 12:32:05
PIC18F45K22与CMT-8540S-SMT蜂鸣器的嵌入式音频开发指南

PIC18F45K22与CMT-8540S-SMT蜂鸣器的嵌入式音频开发指南

1. 项目概述与硬件选型解析在嵌入式开发中,为项目添加声音交互功能是提升用户体验的重要手段。这次我选择了PIC18F45K22微控制器搭配CMT-8540S-SMT磁性蜂鸣器的方案,这个组合特别适合需要紧凑设计的中小型项目。PIC18F45K22作为Microchip的8位MCU&#x…

2026/7/9 12:32:05
济宁智慧养老解决方案选型指南:从“响应闭环”破解服务真伪

济宁智慧养老解决方案选型指南:从“响应闭环”破解服务真伪

作为一个在智慧养老行业摸爬滚打了6年的从业者,我经常被济宁的朋友问到:“给长辈挑智慧养老方案,到底怎么判断靠不靠谱?”本文专为正在为长辈筛选养老服务、对技术术语不熟悉但担心踩坑的济宁子女而写。我将用行业内视角&#xff…

2026/7/9 12:32:05
魔兽争霸III终极兼容性修复指南:WarcraftHelper完整解决方案

魔兽争霸III终极兼容性修复指南:WarcraftHelper完整解决方案

魔兽争霸III终极兼容性修复指南:WarcraftHelper完整解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为一款经典即时…

2026/7/9 12:27:05

月新闻