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:

如果您使用 OAuth 2.0 进行基于令牌的身份验证,您可以将监听程序配置为使用授权服务器。

机架感知
机架意识是一种配置功能,它可以在 机架 间分发 Kafka 代理 Pod 和主题副本,它代表数据中心中的数据中心或机架或可用性区域。

显示 Kafka 配置的 YAML 示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    listeners:
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
        authentication:
          type: tls
    # ...
    storage:
      type: persistent-claim
      size: 10000Gi
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    # ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.