5.3. Kafka 集群配置
kafka 集群由一个或多个代理组成。要使生产者和消费者能够访问代理内的主题,Kafka 配置必须定义数据如何存储在集群中,以及如何访问数据。您可以将 Kafka 集群配置为在 机架 中使用多个代理节点运行。
- 存储
Kafka 和 ZooKeeper 将数据存储在磁盘上。
AMQ 流需要通过
StorageClass调配块存储。存储的文件系统格式必须是 XFS 或 EXT4。支持三种类型的数据存储:- 临时(仅适用于开发的建议)
- 临时存储存储实例生命周期的数据。实例重启后数据会丢失。
- persistent
- 持久存储与独立于实例生命周期的长期数据存储相关。
- JBOD(只是一个磁盘绑定,仅适用于 Kafka)
- JBOD 允许您使用多个磁盘将提交日志存储在每个代理中。
如果基础架构支持,可以增加现有 Kafka 集群使用的磁盘容量。
- 监听程序
侦听器配置客户端如何连接到 Kafka 集群。
通过为 Kafka 集群中的每个监听程序指定唯一的名称和端口,您可以配置多个监听程序。
支持以下类型的监听程序:
- 用于 OpenShift 内部访问的内部监听程序
- 用于在 OpenShift 外部访问的外部监听程序
您可以为监听程序启用 TLS 加密,并配置 身份验证。
使用
internal类型指定内部监听程序。外部监听程序通过指定外部
type来公开 Kafka:-
route使用 OpenShift 路由和默认的 HAProxy 路由器 -
loadbalancer使用负载均衡器服务 -
nodeport在 OpenShift 节点上使用端口 -
ingress为 Kubernetes 使用 OpenShift Ingress 和 NGINX Ingress Controller
如果您使用 OAuth 2.0 进行基于令牌的身份验证,您可以将监听程序配置为使用授权服务器。
- 机架感知
- 机架意识是一种配置功能,它可以在 机架 间分发 Kafka 代理 Pod 和主题副本,它代表数据中心中的数据中心或机架或可用性区域。