本机搭建kafka单机版不须要依靠zookeeper

打印 上一主题 下一主题

主题 779|帖子 779|积分 2337

本机搭建Kafka单机版不须要依靠Zookeeper

Kafka 是一款盛行的分布式消息队列系统,广泛应用于大数据处理、日志聚合、事件源等领域。传统上,Kafka 集群依靠于 Zookeeper 来举行集群管理和协调。然而,从 Kafka 2.8.0 版本开始,引入了 KRaft(Kafka Raft)模式,使得 Kafka 可以不依靠 Zookeeper 运行。本文将介绍如安在本机上使用 Docker 搭建一个 Kafka 单机版,利用 KRaft 模式举行测试验证。
一、准备工作

1. 安装 Docker

确保本机已安装 Docker。可以通过以下命令检查 Docker 是否已安装:
  1. docker --version
复制代码
如果未安装,可以访问 Docker 官网下载并安装 Docker Desktop(Windows 和 Mac)或使用包管理器安装(Linux)。
2. 拉取 Kafka 镜像

打开终端,执行以下命令拉取 Kafka 镜像:
  1. docker pull bitnami/kafka:latest
复制代码
此命令会从 Docker Hub 下载最新版本的 Kafka 镜像,由 Bitnami 提供,该镜像已预配置好 Kafka 的环境和依靠。
二、搭建 Kafka 单机版

1. 创建数据目录

在本机上创建一个目录用于存放 Kafka 的数据,例如 /data/deploy/kafkaCluster/kraft。可以使用以下命令创建:
  1. mkdir -p /data/deploy/kafkaCluster/kraft
复制代码
2. 启动 Kafka 容器

在终端中执行以下命令启动 Kafka 容器:
  1. docker run -d --name kafka \
  2.   -p 9092:9092 -p 9093:9093 \
  3.   -e KAFKA_ENABLE_KRAFT=yes \
  4.   -e KAFKA_CFG_PROCESS_ROLES=broker,controller \
  5.   -e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
  6.   -e KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 \
  7.   -e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
  8.   -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093 \
  9.   -e KAFKA_BROKER_ID=1 \
  10.   -e KAFKA_CFG_NODE_ID=1 \
  11.   -e KAFKA_KRAFT_CLUSTER_ID=your_unique_cluster_id \
  12.   -e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
  13.   -e KAFKA_CFG_CONTROLLER_QUORUM_VOTER_CLIENT_QUOTA_WINDOW_NUM=10 \
  14.   -e KAFKA_CFG_CONTROLLER_QUORUM_VOTER_CLIENT_QUOTA_WINDOW_SIZE_SECONDS=1 \
  15.   -e KAFKA_CFG_CONTROLLER_QUORUM_VOTER_REQUEST_TIMEOUT_MS=5000 \
  16.   -v /data/deploy/kafkaCluster/kraft:/kafka:rw \
  17.   bitnami/kafka:latest
复制代码
该命令的参数阐明如下:


  • -d:背景运行容器。
  • --name kafka:指定容器名称为 kafka。
  • -p 9092:9092 -p 9093:9093:将容器的 9092 和 9093 端口映射到本机的 9092 和 9093 端口。
  • -e:设置环境变量,用于配置 Kafka 的相干参数。

    • KAFKA_ENABLE_KRAFT=yes:启用 KRaft 模式。
    • KAFKA_CFG_PROCESS_ROLES=broker,controller:指定 Kafka 的角色为 broker 和 controller。
    • KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER:指定 controller 监听器名称为 CONTROLLER。
    • KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093:配置监听器,分别对应客户端和 controller 的通讯端口。
    • KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLERLAINTEXT,PLAINTEXTLAINTEXT:配置监听器的安全协议映射。
    • KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093:配置对外暴露的监听器地址。
    • KAFKA_BROKER_ID=1:指定 broker 的 ID。
    • KAFKA_CFG_NODE_ID=1:指定节点 ID。
    • KAFKA_KRAFT_CLUSTER_ID=your_unique_cluster_id:指定 KRaft 集群 ID,需替换为一个唯一的值。
    • KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093:配置 controller quorum 的投票者信息。
    • KAFKA_CFG_CONTROLLER_QUORUM_VOTER_CLIENT_QUOTA_WINDOW_NUM=10:配置 controller quorum 的投票者客户端配额窗口数量。
    • KAFKA_CFG_CONTROLLER_QUORUM_VOTER_CLIENT_QUOTA_WINDOW_SIZE_SECONDS=1:配置 controller quorum 的投票者客户端配额窗口大小(秒)。
    • KAFKA_CFG_CONTROLLER_QUORUM_VOTER_REQUEST_TIMEOUT_MS=5000:配置 controller quorum 的投票者请求超时时间(毫秒)。

  • -v /data/deploy/kafkaCluster/kraft:/kafka:rw:将本机的 /data/deploy/kafkaCluster/kraft 目录挂载到容器的 /kafka 目录,用于存储 Kafka 数据,rw 表示读写权限。
  • bitnami/kafka:latest:指定使用的 Kafka 镜像。
3. 验证 Kafka 启动

启动 Kafka 容器后,可以通过以下命令查看容器日志,确认 Kafka 是否乐成启动:
  1. docker logs kafka
复制代码
如果看到雷同 Kafka started 的日志信息,则表示 Kafka 已乐成启动。
三、连接 Kafka

Kafka 启动后,可以通过以下地址连接 Kafka:


  • 客户端连接地址:127.0.0.1:9092
  • Controller 连接地址:127.0.0.1:9093
可以使用 Kafka 的客户端工具或编程语言中的 Kafka 库举行连接和操纵。

四、注意事项



  • 集群 ID 唯一性:KAFKA_KRAFT_CLUSTER_ID 须要设置为一个唯一的值,以区分不同的 KRaft 集群。
  • 数据目录权限:确保本机的 Kafka 数据目录 /data/deploy/kafkaCluster/kraft 有富足的权限供 Docker 容器访问和写入数据。
  • 端口冲突:如果本机的 9092 或 9093 端口已被占用,须要更换其他端口,并在启动命令中相应修改端口映射。
通过以上步骤,你可以在本机上乐成搭建一个 Kafka 单机版,无需依靠 Zookeeper,方便举行测试和验证。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表