ToB企服应用市场:ToB评测及商务社交产业平台
标题:
本机搭建kafka单机版不须要依靠zookeeper
[打印本页]
作者:
万万哇
时间:
昨天 08:12
标题:
本机搭建kafka单机版不须要依靠zookeeper
本机搭建Kafka单机版不须要依靠Zookeeper
Kafka 是一款盛行的分布式消息队列系统,广泛应用于大数据处理、日志聚合、事件源等领域。传统上,Kafka 集群依靠于 Zookeeper 来举行集群管理和协调。然而,从 Kafka 2.8.0 版本开始,引入了 KRaft(Kafka Raft)模式,使得 Kafka 可以不依靠 Zookeeper 运行。本文将介绍如安在本机上使用 Docker 搭建一个 Kafka 单机版,利用 KRaft 模式举行测试验证。
一、准备工作
1. 安装 Docker
确保本机已安装 Docker。可以通过以下命令检查 Docker 是否已安装:
docker --version
复制代码
如果未安装,可以访问 Docker 官网下载并安装 Docker Desktop(Windows 和 Mac)或使用包管理器安装(Linux)。
2. 拉取 Kafka 镜像
打开终端,执行以下命令拉取 Kafka 镜像:
docker pull bitnami/kafka:latest
复制代码
此命令会从 Docker Hub 下载最新版本的 Kafka 镜像,由 Bitnami 提供,该镜像已预配置好 Kafka 的环境和依靠。
二、搭建 Kafka 单机版
1. 创建数据目录
在本机上创建一个目录用于存放 Kafka 的数据,例如 /data/deploy/kafkaCluster/kraft。可以使用以下命令创建:
mkdir -p /data/deploy/kafkaCluster/kraft
复制代码
2. 启动 Kafka 容器
在终端中执行以下命令启动 Kafka 容器:
docker run -d --name kafka \
-p 9092:9092 -p 9093:9093 \
-e KAFKA_ENABLE_KRAFT=yes \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_CFG_NODE_ID=1 \
-e KAFKA_KRAFT_CLUSTER_ID=your_unique_cluster_id \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTER_CLIENT_QUOTA_WINDOW_NUM=10 \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTER_CLIENT_QUOTA_WINDOW_SIZE_SECONDS=1 \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTER_REQUEST_TIMEOUT_MS=5000 \
-v /data/deploy/kafkaCluster/kraft:/kafka:rw \
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=CONTROLLER
LAINTEXT,PLAINTEXT
LAINTEXT:配置监听器的安全协议映射。
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 是否乐成启动:
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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4