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 代理的主机上。
流程
使用
kafka-storage 工具为Kafka 集群生成 ID:/opt/kafka/bin/kafka-storage.sh random-uuid该命令返回一个 ID。KRaft 模式需要集群 ID。
为集群中的每个代理创建配置属性文件。
您可以将该文件基于 Kafka 提供的示例。
将角色指定为
broker、'controller或broker, controller例如,
process.roles=broker,controller。从
0开始,为集群中的每个节点指定一个唯一的node.id。例如,
node.id=1。指定一个
controller.quorum.voters列表,格式为<node_id>@<hostname:port>。例如,
controller.quorum.voters=1@localhost:9093.
在 Kafka 集群中为每个节点设置日志目录:
/opt/kafka/bin/kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties返回:
Formatting /tmp/kraft-combined-logs将 <uuid > 替换为您生成的集群 ID。为集群中的每个节点使用相同的 ID。
使用您为代理创建的属性文件应用代理配置。
server.properties配置文件中指定的默认日志目录位置为/tmp/kraft-combined-logs。您可以添加以逗号分隔的列表来设置多个日志目录。启动每个 Kafka 代理。
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties检查 Kafka 是否正在运行:
jcmd | grep kafka返回:
number kafka.Kafka /opt/kafka/config/kraft/server.properties
现在,您可以创建主题,并发送和接收代理中的信息。
对于传递消息的代理,您可以使用集群中的代理中的主题复制进行数据持久性。将主题配置为至少有三个,将最小 in-sync 副本数设置为比复制因素小 1。更多信息请参阅 第 6.7 节 “创建主题”。