使用Docker安装Kafka是一个很好的选择,这样可以避免直接在主机上安装的复杂性。以下是使用Docker Compose安装Kafka的步骤和配置文件:
首先,你需要创建一个docker-compose.yml文件,包含Kafka和它依赖的ZooKeeper服务:
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
volumes:
- ./zookeeper-data:/var/lib/zookeeper/data
- ./zookeeper-log:/var/lib/zookeeper/log
kafka:
image: confluentinc/cp-kafka:latest
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
volumes:
- ./kafka-data:/var/lib/kafka/data
使用步骤:
1.创建一个新目录用于Kafka项目:
mkdir kafka-docker
cd kafka-docker
2.将上面的配置保存为docker-compose.yml文件
3.启动Kafka和ZooKeeper:
docker-compose up -d
4.验证服务是否正常运行:
docker-compose ps
测试Kafka是否工作正常:
1. 进入Kafka容器:
docker exec -it kafka bash
2. 创建一个测试主题:
kafka-topics --create --topic test-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
3. 启动一个生产者:
kafka-console-producer --topic test-topic --bootstrap-server localhost:9092
4. 在另一个终端窗口,启动一个消费者:
docker exec -it kafka kafka-console-consumer --topic test-topic --bootstrap-server localhost:9092 --from-beginning
示例:
生产者
消费者
注意事项:
- 上面的配置在volumes部分创建了持久化存储,数据会保存在本地目录中
- 如果你想在其他应用中连接Kafka,使用localhost:9092作为连接地址
- 如果你需要更高级的配置(如多个broker、安全设置等),可以进一步修改配置文件