背景
通过我们将竞品横向对比之后选择了 AKHQ,本文试图描述 AKHQ 的部署方案。
部署 & 配置方案
-
AKHQ on DockerHub,镜像支持 x86 和 arm64 两种架构,此处我们选择 arm64
-
此组件基于 Micronaut 框架开发,无外部依赖,为无状态的 HTTP 服务,部署较为简单
-
官方文档:https://akhq.io/docs
-
代码库:https://github.com/tchiotludo/akhq Star:2.6K
Kafka 多集群配置
connections:
doc-kafka1: #自定义集群名称
properties: bootstrap.servers: "localhost:9093,localhost:9094,localhost:9095"
doc-kafka2:
properties: bootstrap.servers: "localhost:9092"
端口配置
官方文档 Debug & Monitoring
endpoints:
all:
port: {{ env "NOMAD_PORT_lb" }} # 此端口提供 metrics 和健康检查
micronaut:
server:
port: {{ env "NOMAD_PORT_http" }} # 此端口提供 HTTP 服务
SSO 接入服务配置
官方文档 LDAP
security:
enabled: true
intercept-url-map: #URL 拦截配置
- pattern: "/ui/login/**"
access: "isAnonymous()"
- pattern: "/ui/static/**"
access: "isAnonymous()"
- pattern: "/ui/**"
access: "isAuthenticated()"
- pattern: "/api/**"
access: "isAuthenticated()"
- pattern: "/swagger/**"
access: "isAuthenticated()"
ldap:
default:
enabled: true
context:
server: 'ldaps://ldap.seayoo.com:636'
managerDn: ''
managerPassword: ''
search:
filter: "uid={0}"
groups:
enabled: false
filter: "uid={0}"
RBAC 配置
-
权限的配置主要分为 groups 和 ldap 两个 block
-
在 groups 下配置角色组的名字和权限
-
在 ldap 下配置配置用户所属的组
-
-
参考:
security:
default-group: topic-reader # Default groups for all the user even unlogged user
groups:
admin: # unique key
name: admin # Group name
roles: # roles for the group
- group/delete
- group/offsets
- group/offsets/update
- group/read
- node/config
- node/config/update
- node/read
- topic/config
- topic/config/update
- topic/data
- topic/data/delete
- topic/data/insert
- topic/data/read
- topic/delete
- topic/insert
- topic/read
topic-reader: # unique key
name: topic-reader # Group name
roles: # roles for the group
- group/read
- node/read
- topic/read
- topic/data/read
# Ldap Groups configuration (when using ldap)
ldap:
default-group: topic-reader
users:
- username: zhangdong7 # ldap user id
groups: # Akhq groups list
- topic-reader
- username: zhangdong17
groups:
- admin
Nomad 配置
本地调试阶段的 nomad job 已经初步验证通过,参考 MR: Add nomad job and vars for AKHQ.
测试情况
在本地环境测试时,设置 CPU 为 200 MHZ,Memory 设置为 1024 MB
-
正常查看 Topic 数据
-
开启 live tail 模式
-
live tail 操作相对其他操作应该是更耗 CPU 和 Memory,是一种持续消费 Topic 行为