本地搭建 kafka 环境
下载本仓库后
# 启动
$ docker-compose up -d
# 停止
$ docker-compose stopkafka 启动之后,只能本机访问,同一局域网其他机器没法访问
进入容器
$ docker exec -it kafka /bin/bash
$ cd /opt/kafka/bin生产消息
$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic消费消息
$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning客户端访问 kafka 的时候
- 客户端连接到
KAFKA_LISTENERS标识的地址,完后认证后,获取一个brokers的返回地址 - 通过返回的
brokers地址重新建立与kafka的连接,这个返回的地址就是KAFKA_ADVERTISED_LISTENERS的值
因此,若要局域网其他机器也能访问到容器内的 kafka,则需要声明 KAFKA_ADVERTISED_LISTENERS 的地址.
字段说明:
- KAFKA_LISTENERS 定义
kafka的服务监听地址 - KAFKA_ADVERTISED_LISTENERS
kafka发布到zookeeper供客户端使用的服务地址
Docker kafka
kafka配置KAFKA_LISTENERS和KAFKA_ADVERTISED_LISTENERS