调研对象
厂家 | 产品控制台主页 | 应用模式 |
---|---|---|
阿里云 | https://kafka.console.aliyun.com/ | 中间件 PaaS 模块之一 |
腾讯云 | https://console.cloud.tencent.com/ckafka/overview | 中间件 PaaS 模块之一 |
华为云 | https://console.huaweicloud.com/dms/?region=cn-east-3&engine=kafka | 中间件 PaaS 模块之一 |
QingCloud | https://console.qingcloud.com/pek3/app/app-n9ro0xcp/ | 中间件 AppCenter 模块之一 |
UCloud | https://console.ucloud.cn/ukafka/ukafka | 中间件 PaaS 模块之一 |
时速云 | https://console.tenxcloud.com/middleware_center/app | 中间件 应用之一 |
operator 选型
功能横向对比
功能点 | 阿里云 | 腾讯云 | 华为云 | QingCloud | UCloud | 时速云 | strimzi-kafka-operator | koperator |
---|---|---|---|---|---|---|---|---|
Kafka 实例的生命周期管理 | √ | √ | √ | √ | √ | √ | √ | √ |
Kafka 多版本支持 | √ 默认固定,工单调整 | √ | √ | √(仅 1 个) | √ | √ | √ | √ |
Kafka 节点列表 | √ | √ | √ | 跳转 Pod | √ (能创建 pod) | √ | ||
Kafka 原生参数管理 | ||||||||
√ | √ 原生 | √ | √ 原生 | √ | √ | |||
Kafka 常用参数抽象 | √ | √ | √ | √ | √ | √ | ||
Kafka 模块自带 Zookeeper | √ | √ | √ | √ | √ | |||
消息查询功能 | √ | √ | √ | √ 原生 | √ 原生 | |||
消息下载功能 | √(高级版) | |||||||
Topic 管理列表 | √ | √ | √ | √ 原生 | √ | √ 原生 | ||
Topic 增删改查 | √ | √ | √ | √ 原生 | √ | √ 原生 | ||
Topic 高级参数支持 | √ | √ | √ | √ 原生 | √ | √ 原生 | ||
Topic 详情 | √ | √ | ||||||
√ 原生 | √ | √ 原生 | √ | √ | ||||
Consumer Group 列表 | √ | √ | √ 原生 | √ 原生 | ||||
Consumer Group 增删改查 | √ | √ | √ 原生 | √ | √ 原生 | |||
资源监控看板 | √ | √ | √ | √ | √ | √ grafana dashboard | √ grafana dashboard | |
Kafka 业务数据监控 (消息量/积压/消费情况) | √ | √ | √ | √ | √Grafana | √ exporter+grafana | √ exporter+grafana | |
示例接入代码 | √ | √ | √ | |||||
消息发送测试窗口 | √ | √ | √ | |||||
Kafka 服务日志查看 | ||||||||
操作审计日志查看 | √ | √ | √ | |||||
提供 Kafka Manager UI | √ | √ | ||||||
提供 kafka export 备份功能 | √ | √ | ||||||
友好性帮助文档 | √ | √ | √ | √ | √ | |||
提供帮助用户迁入上云 | √ | √ | √ |
Kafka 创建过程及开放参数
厂家 | 字段 |
---|---|
阿里云 | 名称流量规格集群流量 = 业务流量 + 集群内副本复制流量,该规格实际业务读流量处理峰值为 50 MB/s,业务写流量处理峰值为 10 MB/s。磁盘容量数据默认 3 副本存储。实例规格为标准版时,如购买 300G 磁盘,实际存储业务的磁盘大小为 100G,其余 200G 为备份容量。实例规格为专业版时,如购买 300G 磁盘,实际存储业务的磁盘大小为 300G,额外赠送 600G 备份容量。消息保留最长时间是指在磁盘容量充足的情况下,消息的最长保留时间;在磁盘容量不足(即磁盘水位达到 85%)时,将提前删除旧的消息,以确保服务可用性;默认 72 小时,可选 24 小时 ~ 168 小时。最大消息大小,默认 1MB 边界值?标准版实例单条消息最大为 256KB,专业版实例单条消息最大为 10MB 且支持下载Topic 数量 |
腾讯云 | 名称 Kafka 版本实例规格配置存储容量消息保留时长 |
华为云 | 名称 Kafka 版本实例规格配置存储容量 |
QingCloud | 名称 Kafka 版本 Kafka 节点配置:CPU / 内存 / 节点数(规格 )客户端节点配置:CPU / 内存 / 节点数(规格)Kafka-Manager / CLI)Zookeeper 实例存储容量自定义参数配置内部 Topic offset replicasKafka manager 认证 zabbix.agentkafka scale version |
UCloud | 名称 Kafka 版本实例规格配置 + 存储容量实例数 3< 设定值< 100 消息保留时长 |
基础设计问题
部署方式?
DCE5 支持多集群,Kafka 采用 operator 的方式部署,则需要先安装 Operator 模板到集群内
什么时间安装 Kafka-operator?
在用户创建 kafka 实例时,检测是否目标集群是否存在 kafka-operator,如果不存在则同步安装
什么时间移除 kafka-operator,默认情况下安装后不移除;交由 Kpanda 对集群释放时处理
如果支持 Kafka 多版本?
通过多版本 对应 多 Kafka-opeator 的方式,让用户进行多版本选择
Operator 更新后,存量 Kafka 怎么办?
非必要需求,短期不支持
默认情况下更新了 operator 之后,不对存量做处理;后续可以做友好提示用户升级即可
调研对象主要功能截图
阿里云
实例生命周期管理
实例创建
实例详情
Kafka Topic 管理
Kafka 消息查询
监控告警页面
Topic 详情
Group 管理
Prom 监控
腾讯云
Kafka 实例生命周期管理
消息查询功能
数据同步任务
迁移上云功能
Topic 管理
https://cloud.tencent.com/document/product/597/73566
查看 Topic 详情
查看 Topic 生产端连接
发送测试消息
Group 管理
华为云
实例的创建
实例基本信息
实例配置修改
创建 Topic
监控
示例代码
QingCloud
Kafka 实例的创建
创建时,需要关联依赖服务 zookeeper
实例详情
Topic 管理
提供了原生的 Kafka-manager 管理 UI https://docsv3.qingcloud.com/middware/kafka/manual/kafka_manager/kafka_manager_topic/
访问方式,以 openvpn 的方式接入到 VPC(需绑定入口公网 IP) 后,通过 client 内网地址访问
UCloud
创建实例
Kafka 实例详情
Kafka 节点的详情页面
kafka 自定义配置
Kafka 连接器
将上游 Kafka 数据传输到 HDFS 或者 es
监控看板
创建 Topic
时速云
实例生命周期管理
- 需要提前安装 zookeeper
- 需要联系时速云管理员安装 kafka-cluster-operator
- 到交付中心,找到 Operator Hub,选择 Kafka-cluster-operator 安装
- 安装完成后,可通过 Yaml + 表单形式 创建 Kafka
- 提供 Kafka manger 原生 UI 控制台
Kafka 实例详情
提供原生的实例管理界面,进行配置更新等
Kafka 实例下节点信息
直接跳转到 K8s 容器组界面查看
Topic 管理
在 Kafka manger 原生 UI 控制台内管理,默认启用了控制台公网访问能力
实例资源监控
基础 CPU、内存、网络、存储监控
Kafka 性能监控
接入 Grafana 提供一个 Dashboard 的,可以查看 Topics 的消息数,消费量,积压数
调研对象操作视频录制
操作视频已上传到 OneDrive 共享空间
腾讯云只可以按月份订购,所以没有录制视频。
选型确认
方案一:
- 中间件实例 LCM + 三方 UI 管理工具
实现:
- Kafka 实例 LCM
- Kafka Manage UI (三方)
- 监控三件套 (Insight) [只需要做实例级别]
方案比对:
- 现有 Opeator 不带 Kafka Manger,需要自行处理
- 不需要关心 Topic LCM
- 不需要做业务监控
- 沿用现有的 DCE 中间件的设计思路
方案二:
- 不增加三方 Kafka Manage UI
实现:
- Kafka 实例 LCM
- Topic LCM
- 监控三件套 (Insight) [需要做实例 + 业务监控]
方案对比:
- 现有 Operator 带有 Topic CR,可以用
- 需要做业务监控
- 需要做 Topic LCM
- 与其他中间件模块定义不一致(当前阶段)