4.5. 运行多节点 Kafka 集群


这个步骤描述了如何将 Kafka 配置为多节点集群。

先决条件

运行集群

对于 AMQ Streams 集群中的每个 Kafka 代理:

  1. 按如下方式编辑 /opt/kafka/config/server.properties Kafka 配置文件:

    • 将第一个代理的 broker.id 字段设置为 0,第二个代理为 1,以此类推。
    • zookeeper.connect 选项中配置连接到 ZooKeeper 的详情。
    • 配置 Kafka 侦听程序。
    • 设置提交日志应存储在 logs.dir 目录中的目录。

      在这里,我们会看到 Kafka 代理的配置示例:

      broker.id=0
      zookeeper.connect=zoo1.my-domain.com:2181,zoo2.my-domain.com:2181,zoo3.my-domain.com:2181
      listeners=REPLICATION://:9091,PLAINTEXT://:9092
      inter.broker.listener.name=REPLICATION
      log.dirs=/var/lib/kafka

      在典型的安装中,每个 Kafka 代理都在相同的硬件中运行,只有 broker.id 配置属性会因代理配置而异。

  2. 使用默认配置文件启动 Kafka 代理。

    su - kafka
    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
  3. 验证 Kafka 代理正在运行。

    jcmd | grep Kafka

验证代理

当集群的所有节点都启动并运行后,使用 ncat 工具向其中一个 ZooKeeper 节点发送 dump 命令来验证所有节点是否都是 Kafka 集群的成员。命令打印 ZooKeeper 注册的所有 Kafka 代理。

  1. 使用 ncat stat 检查节点状态。

    echo dump | ncat zoo1.my-domain.com 2181

    输出应包含您刚才配置和启动的所有 Kafka 代理。

    带有 3 个节点的 Kafka 集群的 ncat 命令输出示例:

    SessionTracker dump:
    org.apache.zookeeper.server.quorum.LearnerSessionTracker@28848ab9
    ephemeral nodes dump:
    Sessions with Ephemerals (3):
    0x20000015dd00000:
            /brokers/ids/1
    0x10000015dc70000:
            /controller
            /brokers/ids/0
    0x10000015dc70001:
            /brokers/ids/2

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.