0%

docker启动kafka

docker启动kafka

最近在做微服务项目,准备使用kafka作为MQ。
自己以前没接触过kafka,所以自己想搭建一个环境,试用一下。

使用docker-compose启动kafka

首先是docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
depends_on: [ zookeeper ]
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 本机的外网IP,注意需要开启9092的外网访问防火墙
KAFKA_CREATE_TOPICS: "test:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

其中 KAFKA_ADVERTISED_HOST_NAME 需要开启外网防火墙9092端口,否则在发布信息和监听信息的时候会不停的报警告信息。

然后启动docker-compose

1
docker-compose up -d

之后可以查看启动结果

1
docker exec -it kafka_kafka_1 bash

进入容器后,创建一个topic

1
opt/kafka/bin/kafka-topics.sh --zookeeper zookeeper:2181 --create --replication-factor 1 --partitions 1 --topic kafkatest

再在这个topic上开启producer,就可以持续输入内容发布消息了。

1
opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kafkatest

再启动一个ssh,进入容器,启动consumer进行这个topic的监听。

1
opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafkatest --from-beginning

这样就可以在producer上发布消息,再consumer上监听到了。

欢迎关注我的其它发布渠道