- 后端
- 消息队列
- 运维
- 可观测性
【免费下载链接】KnowStreaming
一站式云原生实时流数据平台,通过0侵入、插件化构建企业级Kafka服务,极大降低操作、存储和管理实时流数据门槛
本文基于 Know Streaming 开源仓库 docs/user_guide/新旧对比手册.md 展开,系统梳理 Know Streaming V3.0 与其前身 Logi-KM V2.x 在产品定位、协议、功能架构与模块能力上的全面差异。读者可据此理解 V3.0 重构后的设计哲学(0 侵入、插件化、GUI 化),快速定位多集群管理、健康检查、Broker/Topic 配置、ACL 与 KafkaUser、消息测试(企业版)等核心模块的变更明细,并结合仓库源码掌握健康检查、健康分等新能力的底层实现路径。
一、版本背景:产品名称与开源协议变更
新旧版本对比首先体现在产品命名与开源协议上,这一变更也标志着项目整体重构的决心:
| 项目 | 版本 | 名称 | 开源协议 |
|---|---|---|---|
| Know Streaming | V3.0 | Know Streaming | AGPL 3.0 |
| Logi-KM | V2.x | Logi-KM | Apache License 2.0 |
Know Streaming V3.0 采用了AGPL 3.0协议,比 V2.x 的 Apache License 2.0 在网络服务场景下具有更强的传染性约束,更强调"使用即开源回馈"的社区治理思路。开发者在使用 V3.0 时应注意协议变化带来的合规差异。
二、全新的设计理念:0 侵入、0 门槛的 Kafka 可视化管理
原文档明确指出 V3.0 的核心设计理念是:
- 0 侵入、0 门槛前提下提供直观 GUI:用于管理和观测 Apache Kafka®,帮助用户降低 Kafka CLI 操作门槛,轻松实现对原生 Kafka 集群的可管、可见、可掌控,提升 Kafka 使用体验并降低管理成本;
- 海量集群一键接入:无需对 Kafka 集群做任何改造即可实现深度纳管,真正的0 侵入、插件化系统设计,覆盖0.10.x ~ 3.x.x众多 Kafka 版本的无缝纳管。
这一理念在仓库的模块划分中得到印证:km-common(公共模型与常量)、km-core(核心服务与指标计算)、km-biz(业务编排)、km-persistence(MySQL / Elasticsearch / Kafka / JMX 多源持久化)、km-rest(REST API 层)、km-task(定时任务与采集)以及km-console(前端控制台)彼此解耦,接入方只需提供集群连接信息,系统即通过插件化的版本指标体系(参见km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/version/metrics/kafka/下按 Kafka 版本组织的ClusterMetricVersionItems、BrokerMetricVersionItems、TopicMetricVersionItems等)完成多版本兼容适配。
三、功能架构演进:从管控系统到观测、健康、运维一体化
V3.0 的功能架构相较 V2.x 发生了本质性扩展。原文档以两张架构图分别展示了两个版本的功能分层(因原图为站外图片,此处以文字还原其核心分层差异):
- V2.x 功能架构:以集群管理、Topic 管理、Consumer 管理、ACL 管理、系统管理等管控功能为核心,架构更偏"运维审批 + 配置管理"模式;
- V3.0 功能架构:在 V2.x 管控能力之上,新增了健康检查与健康分体系、关键指标统计与 GUI 展示、Load Rebalance(企业版)、消息测试(企业版)、KafkaUser 管理、配置变更记录等观测与自治能力,功能架构从"管理 Kafka"升级为"观测 + 管理 + 自治 Kafka"。
四、功能变更详解:逐模块对比新增、优化与删除
4.1 多集群管理
| 变更类型 | 明细 |
|---|---|
| 增加 | 健康监测体系、关键组件 & 指标 GUI 展示 |
| 增加 | 2.8.x 以上 Kafka 集群接入,覆盖范围扩展至 0.10.x ~ 3.x |
| 删除 | 逻辑集群、共享集群、Region 概念 |
V3.0 简化了集群抽象模型,删除了 V2.x 中逻辑集群 / 共享集群 / Region 的多层概念,以物理集群(ClusterPhy)为唯一纳管单元,降低理解与配置成本。
4.2 Cluster 管理
| 变更类型 | 明细 |
|---|---|
| 增加 | 集群概览信息、集群配置变更记录 |
| 增加 | Cluster 健康分,健康检查规则支持自定义配置 |
| 增加 | Cluster 关键指标统计和 GUI 展示,支持自定义配置 |
| 增加 | Cluster 层 I/O、Disk 的 Load Rebalance 功能,支持定时均衡任务(企业版) |
| 删除 | 限流、鉴权功能 |
| 删除 | APPID 概念 |
其中健康分是 V3.0 最具代表性的新能力。从源码看,健康检查被建模为独立的"配置分组 + 检查项 + 检查器"体系:
- 配置分组:
ConfigGroupEnum.HEALTH(10, "健康检查及健康分")(见 ConfigGroupEnum.java),说明健康检查规则是一类可持久化、可自定义的集群级配置; - 检查维度:
HealthCheckDimensionEnum定义了CLUSTER / BROKER / TOPIC / GROUP / ZOOKEEPER / CONNECT_CLUSTER / CONNECTOR / MIRROR_MAKER等维度(见 HealthCheckDimensionEnum.java); - 检查框架:
AbstractHealthCheckService以functionMap(ConcurrentHashMap)注册各检查项函数,统一通过checkAndGetResult(ClusterParam, BaseClusterHealthConfig)完成单资源检查(见 AbstractHealthCheckService.java); - 健康分聚合:
HealthStateServiceImpl.calClusterHealthMetrics将 Cluster、Broker、Topic、Group、Zookeeper、Connect、MirrorMaker 各维度的"检查通过数 / 检查总数 / 健康状态"聚合为集群级健康分,并以各维度最大状态作为集群健康状态(见 HealthStateServiceImpl.java)。
健康检查的配置与结果均通过 REST API 暴露给前端:KafkaHealthController提供了clusters/{clusterPhyId}/health-detail(健康检查详情,支持按维度筛选)、clusters/{clusterPhyId}/dimensions/{dimensionCode}/resources/{resName}/health-detail(具体资源健康详情)以及clusters/{clusterPhyId}/health-configs(健康检查配置)三组接口(见 KafkaHealthController.java)。前端在km-console/packages/layout-clusters-fe/src/pages/SingleClusterDetail/HealthySetting.tsx中通过getClusterHealthyConfigs拉取配置并以抽屉表单呈现"健康设置"页面,支持按集群自定义健康规则。
4.3 Broker 管理
| 变更类型 | 明细 |
|---|---|
| 增加 | Broker 健康分 |
| 增加 | Broker 关键指标统计和 GUI 展示,支持自定义配置 |
| 增加 | Broker 参数配置功能,需重启生效 |
| 增加 | Controller 变更记录 |
| 增加 | Broker Datalogs 记录 |
| 删除 | Leader Rebalance 功能 |
| 删除 | Broker 优先副本选举 |
Broker 参数配置功能在km-biz层由 BrokerConfigManager.java 及其实现 BrokerConfigManagerImpl.java 支撑,前端对应BrokerDetail/Configuration.tsx与ConfigurationEdit.tsx页面;需要注意的是,Broker 级参数修改需要重启 Broker 后生效,而 Topic 级参数修改可实时生效(见下文)。
4.4 Topic 管理
| 变更类型 | 明细 |
|---|---|
| 增加 | Topic 健康分 |
| 增加 | Topic 关键指标统计和 GUI 展示,支持自定义配置 |
| 增加 | Topic 参数配置功能,可实时生效 |
| 增加 | Topic 批量迁移、Topic 批量扩缩副本功能 |
| 增加 | 查看系统 Topic 功能 |
| 优化 | Partition 分布的 GUI 展示 |
| 优化 | Topic Message 数据采样 |
| 删除 | Topic 过期概念 |
| 删除 | Topic 申请配额功能 |
Topic 的批量迁移与批量扩缩副本能力在km-biz层由 OpTopicManager.java 及其实现 OpTopicManagerImpl.java 承载,前端在km-console/packages/layout-clusters-fe/src/pages/TopicList/(ExpandPartition.tsx扩分区)与components/TopicJob/(ReplicaMove.tsx、ReplicaChange.tsx副本迁移/变更)中提供 GUI 操作入口,配合 Job 模块的任务进度管理完成长耗时操作。
4.5 Consumer 管理
| 变更类型 | 明细 |
|---|---|
| 优化 | ConsumerGroup 展示形式,增加 Consumer Lag 的 GUI 展示 |
Consumer Lag(消费滞后)的 GUI 展示意味着 V3.0 将消费进度观测纳入核心体验,前端ConsumerGroup/Detail.tsx、Consumers/ConsumerGroupDetail.tsx等页面均围绕 Group + Topic 的 Lag 数据展开。
4.6 ACL 管理
| 变更类型 | 明细 |
|---|---|
| 增加 | 原生 ACL GUI 配置功能,可配置生产、消费、自定义多种组合权限 |
| 增加 | KafkaUser 功能,可自定义新增 KafkaUser |
ACL 与 KafkaUser 在km-biz层分别由 KafkaAclManager.java 和 KafkaUserManager.java 提供,前端对应SecurityACLs/EditDrawer.tsx与SecurityUsers/页面。V3.0 将 Kafka 原生 ACL 的生产 / 消费 / 自定义组合权限直接映射到 GUI 表单,降低了安全策略的配置门槛。
4.7 消息测试(企业版)
| 变更类型 | 明细 |
|---|---|
| 增加 | 生产者消息模拟器,支持 Data、Flow、Header、Options 自定义配置(企业版) |
| 增加 | 消费者消息模拟器,支持 Data、Flow、Header、Options 自定义配置(企业版) |
该能力在仓库中体现为企业版扩展模块(km-enterprise及相关企业版页面),前端对应TestingProduce/(生产测试,含EditTable.tsx、CustomTextArea.tsx等自定义组件)与TestingConsumer/(消费测试,含ConfigForm.tsx、Result.tsx、TaskTabs.tsx)。原文档标注为"企业版",社区版不包含该功能。
4.8 Job 模块
| 变更类型 | 明细 |
|---|---|
| 优化 | Job 模块,支持任务进度管理 |
Job 模块支撑 Topic 批量迁移、扩缩副本、Load Rebalance(企业版)等长任务,前端Jobs/目录中的ViewJobsProgress.tsx、TeskDetails.tsx、ExpandedRow.tsx即为任务进度与明细的 GUI 呈现。
4.9 系统管理
| 变更类型 | 明细 |
|---|---|
| 优化 | 用户、角色管理体系,支持自定义角色配置页面及操作权限 |
| 优化 | 审计日志信息 |
| 删除 | 多租户体系 |
| 删除 | 工单流程 |
系统管理向"轻量、自主"方向演进:删除多租户与工单流程,同时将权限细化到页面 + 操作粒度,用户角色管理在km-console/packages/config-manager-fe/src/pages/UserManage/(RoleTabContent.tsx、UserTabContent.tsx、CheckboxGroupContainer.tsx)中实现;审计日志对应OperationLog/页面。
五、源码视角:V3.0 健康检查项全景(可选配置的检查项清单)
为了让读者理解"健康检查规则支持自定义配置"的具体含义,以下根据 HealthCheckNameEnum.java 梳理出 V3.0 内置的健康检查项,每一项均归属于某检查维度,并对应三种配置模型之一:HealthCompareValueConfig(阈值比较)、HealthDetectedInLatestMinutesConfig(最近 N 分钟检测窗口)、HealthAmountRatioConfig(数量/比率):
| 维度 | 检查项(configItem) | 说明 | 配置模型 |
|---|---|---|---|
| CLUSTER | Controller | 集群 Controller 数正常(可用性检查) | HealthCompareValueConfig |
| BROKER | RequestQueueSize | Broker RequestQueueSize 指标 | HealthCompareValueConfig |
| BROKER | NetworkProcessorAvgIdlePercent | Broker NetworkProcessorAvgIdlePercent 指标 | HealthCompareValueConfig |
| GROUP | Group Re-Balance | Group re-balance 频率 | HealthDetectedInLatestMinutesConfig |
| TOPIC | NoLeader | Topic 无 Leader 数 | HealthCompareValueConfig |
| TOPIC | UnderReplicaTooLong | Topic 未同步持续时间 | HealthDetectedInLatestMinutesConfig |
| ZOOKEEPER | BrainSplit | ZK 脑裂(可用性检查) | HealthCompareValueConfig |
| ZOOKEEPER | OutstandingRequests | ZK Outstanding 请求堆积数 | HealthAmountRatioConfig |
| ZOOKEEPER | WatchCount | ZK WatchCount 数 | HealthAmountRatioConfig |
| ZOOKEEPER | AliveConnections | ZK 连接数 | HealthAmountRatioConfig |
| ZOOKEEPER | ApproximateDataSize | ZK 数据大小(Byte) | HealthAmountRatioConfig |
| ZOOKEEPER | SentRate | ZK 发包数 | HealthAmountRatioConfig |
| CONNECT_CLUSTER | TaskStartupFailurePercentage | Connect 集群任务启动失败概率 | HealthCompareValueConfig |
| CONNECTOR | ConnectorFailedTaskCount | Connector 失败状态的任务数量 | HealthCompareValueConfig |
| CONNECTOR | ConnectorUnassignedTaskCount | Connector 未被分配的任务数量 | HealthCompareValueConfig |
| MIRROR_MAKER | MirrorMakerFailedTaskCount | MirrorMaker 失败状态的任务数量 | HealthCompareValueConfig |
| MIRROR_MAKER | MirrorMakerUnassignedTaskCount | MirrorMaker 未被分配的任务数量 | HealthCompareValueConfig |
| MIRROR_MAKER | TotalRecord-errors | MirrorMaker 消息处理错误次数 | HealthCompareValueConfig |
| MIRROR_MAKER | ReplicationLatencyMsMax | MirrorMaker 消息复制最大延迟时间 | HealthCompareValueConfig |
检查项与健康检查框架解耦:新增检查项只需在枚举中登记并在对应维度的HealthCheck*Service(位于 km-core 健康检查目录)中注册实现函数,即可被健康分体系自动纳入,这正是"自定义配置 + 插件化"设计的落点。
六、新旧版本能力对照速查表
| 能力维度 | Logi-KM V2.x | Know Streaming V3.0 |
|---|---|---|
| 设计理念 | CLI 辅助型管控 | 0 侵入、插件化、GUI 可视化 |
| Kafka 版本覆盖 | 部分版本 | 0.10.x ~ 3.x.x 无缝纳管 |
| 集群模型 | 逻辑集群 / 共享集群 / Region | 物理集群单一模型 |
| 健康检查 / 健康分 | 无 | Cluster / Broker / Topic / Group / ZK / Connect / MirrorMaker 全维度,规则可自定义 |
| 指标观测 | 有限 | 关键指标统计 + GUI 展示 + 自定义配置 |
| Broker 配置 | 无 | 支持,重启生效 + Controller 变更记录 + Datalogs |
| Topic 配置 | 无 | 支持,实时生效 + 批量迁移 / 扩缩副本 |
| ACL | 无 | 原生 ACL GUI 配置 + KafkaUser |
| 消息测试 | 无 | 生产 / 消费消息模拟器(企业版) |
| 均衡 | Leader Rebalance / 优先副本选举 | Load Rebalance(企业版,支持定时任务) |
| 限流鉴权 / APPID | 有 | 删除 |
| Topic 过期 / 配额申请 | 有 | 删除 |
| 多租户 / 工单流程 | 有 | 删除 |
| 系统管理 | 基础用户体系 | 自定义角色 + 页面/操作权限 + 审计日志优化 |
七、总结与升级建议
Know Streaming V3.0 相对 Logi-KM V2.x 是一次"重构式"升级,核心脉络可概括为:抽象模型简化(删除逻辑集群、Region、APPID、多租户、工单等复杂概念)+观测能力增强(健康分、关键指标 GUI、变更记录、审计日志)+操作方式 GUI 化(Broker/Topic 参数配置、原生 ACL、批量迁移/扩缩副本)。对于正在使用或评估该项目的读者:
- 从 V2.x 升级 V3.0 时,需重点关注被删除能力(限流、鉴权、APPID、多租户、工单、Topic 过期与配额)的替代方案,以及 AGPL 3.0 协议带来的合规要求;
- 部署后建议优先配置健康检查规则与指标展示项(
健康设置页面,对应 HealthySetting.tsx),充分利用 V3.0 的"可管、可见、可掌控"能力; - 社区版与企业版的功能边界(Load Rebalance、消息测试等标注为"企业版")需要在选型时一并确认。
关联阅读:仓库完整文档目录见 docs/,其中 docs/user_guide/用户使用手册.md、docs/user_guide/页面无数据排查手册.md 可进一步了解 V3.0 的实际使用与排查方法;健康检查与指标体系的核心源码位于 km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/health/。
- 后端
- 消息队列
- 运维
- 可观测性
【免费下载链接】KnowStreaming
一站式云原生实时流数据平台,通过0侵入、插件化构建企业级Kafka服务,极大降低操作、存储和管理实时流数据门槛
相关推荐
HunyuanImage-3.0版本更新日志:v1.0到v3.0核心功能演进史
HunyuanImage 3.0版本更新日志:v1.0到v3.0核心功能演进史 HunyuanImage 3.0作为腾讯混元系列的旗舰多模态图像生成模型,历经三
人工智能大模型基础模型计算机视觉如何快速上手吉里吉里Z:面向新手的完整开发入门教程
如何快速上手吉里吉里Z:面向新手的完整开发入门教程 吉里吉里Z(Kirikiri Z)是一款强大的多媒体应用开发引擎,广泛用于创建视觉小说、游戏和互动内容。本教
游戏开发如何在iOS 15-17上使用roothide Bootstrap:从TrollStore安装到插件注入完全教程
如何在iOS 15 17上使用roothide Bootstrap:从TrollStore安装到插件注入完全教程 roothide Bootstrap是一款功能
移动开发应用安全逆向工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考