kafka的安装与配置
kafka的安装与配置
kafka的安装
在这我才用的是oracle云,系统是Ubuntu,在docker上按照的
安装docker
具体的安装方法请见docker-compose教程
查看docker版本
docker --version
Docker version 27.0.3, build 7d4bcd8
创建 Docker Compose 文件
Kafka 依赖 Zookeeper 来管理集群,因此我们需要创建一个 docker-compose.yml
文件来定义 Kafka 和 Zookeeper 的服务。
mkdir kafka
cd kafka
nano docker-compose.yml
编写文件:
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
ports:
- "9092:9092"
ZOOKEEPER_CLIENT_PORT: 2181:设置环境变量,定义 Zookeeper 客户端连接的端口
启动 Kafka 和 Zookeeper
保存并退出编辑器后,运行以下命令来启动 Kafka 和 Zookeeper:
docker-compose up -d
这个命令将启动两个 Docker 容器:一个运行 Zookeeper,另一个运行 Kafka
docker启动
如果不会compose的,也可以正常走
#启动zookeeper
docker run -d --name zookeeper -p 2181:2181 -e ZOOKEEPER_CLIENT_PORT=2181 confluentinc/cp-zookeeper:latest
#启动kafka
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
--link zookeeper:zookeeper confluentinc/cp-kafka:latest
命令解释:
-d
:在后台运行 Kafka 容器。
--name kafka
:容器名称为 kafka
。
-p 9092:9092
:将主机的 9092 端口映射到容器的 9092 端口(Kafka 的默认端口)。
-e KAFKA_BROKER_ID=1
:设置 Kafka broker ID 为 1。
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
:指定 Kafka 连接的 Zookeeper 地址。
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
:设置 Kafka 广播的地址和端口。
--link zookeeper:zookeeper
:将 Kafka 容器与 Zookeeper 容器链接。
检查容器状态
检查 Kafka 和 Zookeeper 容器是否运行正常
docker ps
连接到 Kafka
要连接 Kafka 进行操作(例如创建主题、发送或接收消息),首先进入 Kafka 容器
docker exec -it kafka bash
在 Kafka 容器内部,使用以下命令来创建主题并发送和接收消息:
# 创建主题
kafka-topics --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
# 向主题发送消息
kafka-console-producer --topic test --bootstrap-server localhost:9092
# 从主题读取消息
kafka-console-consumer --topic test --from-beginning --bootstrap-server localhost:9092
发送消息:
读取消息:
以上正常就表示kafka安装完成了