4.2. 以 KRaft 模式运行 Kafka 集群


在 KRaft 模式中配置并运行 Kafka。如果您使用单节点或多节点 Kafka 集群,则可以在 KRaft 模式下运行 Kafka。至少运行三个代理和控制器节点以实现稳定性和可用性。

您可以为代理设置角色,以便它们也可以是控制器。您可以使用配置属性文件应用代理配置,包括角色设置。代理配置因角色而异。KRaft 提供三个示例代理配置属性文件。

  • /opt/kafka/config/kraft/broker.properties 具有代理角色配置示例
  • /opt/kafka/config/kraft/controller.properties 具有控制器角色的示例配置
  • /opt/kafka/config/kraft/server.properties 具有组合角色配置示例

您可以在这些示例属性文件中作为代理配置。在此过程中,使用 example server.properties 配置。

先决条件

  • AMQ Streams 安装 在所有要用作 Kafka 代理的主机上。

流程

  1. 使用 kafka-storage 工具为 Kafka 集群生成 ID:

    /opt/kafka/bin/kafka-storage.sh random-uuid
    Copy to Clipboard Toggle word wrap

    该命令返回一个 ID。KRaft 模式需要集群 ID。

  2. 为集群中的每个代理创建配置属性文件。

    您可以将该文件基于 Kafka 提供的示例。

    1. 将角色指定为 broker、'controllerbroker, controller

      例如,process.roles=broker,controller

    2. 0 开始,为集群中的每个节点指定一个唯一的 node.id

      例如,node.id=1

    3. 指定一个 controller.quorum.voters 列表,格式为 <node_id>@<hostname:port>

      例如,controller.quorum.voters=1@localhost:9093.

  3. 在 Kafka 集群中为每个节点设置日志目录:

    /opt/kafka/bin/kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties
    Copy to Clipboard Toggle word wrap

    返回:

    Formatting /tmp/kraft-combined-logs
    Copy to Clipboard Toggle word wrap

    <uuid > 替换为您生成的集群 ID。为集群中的每个节点使用相同的 ID。

    使用您为代理创建的属性文件应用代理配置。

    server.properties 配置文件中指定的默认日志目录位置为 /tmp/kraft-combined-logs。您可以添加以逗号分隔的列表来设置多个日志目录。

  4. 启动每个 Kafka 代理。

    /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
    Copy to Clipboard Toggle word wrap
  5. 检查 Kafka 是否正在运行:

    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap

    返回:

    number kafka.Kafka /opt/kafka/config/kraft/server.properties
    Copy to Clipboard Toggle word wrap

现在,您可以创建主题,并发送和接收代理中的信息。

对于传递消息的代理,您可以使用集群中的代理中的主题复制进行数据持久性。将主题配置为至少有三个,将最小 in-sync 副本数设置为比复制因素小 1。更多信息请参阅 第 6.7 节 “创建主题”

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat