环境与工具:
1、ubuntu
2、docker-compose
安装:
1、创建docker compose文件
创建docker-compose.yml,写入内容如下:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper:3.4.6
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka:2.12-2.3.0
ports:
- "9092:9092"
expose:
- "9093"
environment:
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
( 注意:配置文件中localhost表示只支持本地访问,如果需要能够被其他服务器访问,需要将其改为当前服务器的外网IP,或0.0.0.0)
2、执行命令,生成镜像
在终端中,进入到docker-compose.yml所在目录,执行以下命令:
docker-compose up -d
这将会启动kafka和zookeeper服务,-d表示在后台运行
3、验证kafka是否正常运行
开启两个终端,分别进入kafka容器:
#docker exec -it <kafka_container_id> /bin/bash
docker exec -it 3e095b7026f5 /bin/bash
a、创建topic并写入消息
创建topic:
kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
写入消息:
kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
b、从指定topic读取消息
kafka-console-consumer.sh --topic test-topic --bootstrap-server localhost:9092 --from-beginning
(注意:在较旧版本的 Kafka 中,--bootstrap-server 参数可能不被支持,可以尝试使用 --broker-list 参数代替)
如果上述步骤都成功,说明kafka安装成功。