搜索

4.2. 运行多节点 Kafka 集群

download PDF

将 Kafka 配置为多节点集群。

先决条件

运行集群

对于 Apache Kafka 集群的 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
      listener.security.protocol.map=PLAINTEXT:PLAINTEXT,REPLICATION:PLAINTEXT
      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

    返回:

    process ID kafka.Kafka /opt/kafka/config/server.properties
  4. 使用 ncat 实用程序将 dump 命令发送到其中一个 ZooKeeper 节点,以验证所有节点是否为 Kafka 集群的成员。

    使用 ncat dump 检查 ZooKeeper 中注册的所有 Kafka 代理

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

    要使用包括四个字母的命令,如 dump,需要在 zookeeper.properties 中指定 4lw.commands.whitelist=*

    输出必须包含您刚才配置和启动的所有 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.