6.6.安装 Kafka
6.6.1.安装zookeeper
要先安装 zookeeper 再安装kafka
6.6.1.1.拉取zookeeper
docker pull wurstmeister/zookeeper
6.6.1.2.启动容器
docker run -d--name zookeeper -p2181:2181 \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2\--restart=always \-v /etc/localtime:/etc/localtime \
wurstmeister/zookeeper
6.6.2.安装kafka
安装kafka:目前kafka的docker镜像主要是两个版本:
wurstmeister/kafka
和
bitnami/kafka
,
6.6.2.1.拉取kafka
本次选用的是后者 bitnami/kafka 。
docker pull bitnami/kafka:latest
6.6.2.2.启动kafka容器
docker run -d--name kafka0 -p9092:9092 \--privileged=true \-eKAFKA_BROKER_ID=0\-eKAFKA_ZOOKEEPER_CONNECT=192.168.3.251:2181 \-eKAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \-eKAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.251:9092 \-eALLOW_PLAINTEXT_LISTENER=yes \
bitnami/kafka:latest
参数解释:
-d :后台运行
– name 当前容器的名字。
-p:暴露端口,-p 9092:9092 将容器内部的9092端口映射到宿主机的端口上。
–privileged:使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。KAFKA_BROKER_ID : broker的ID,这个ID是集群的标识,不能重复。
KAFKA_ZOOKEEPER_CONNECT:zookeeper的连接地址
KAFKA_LISTENERS:标识kafka服务运行在容器内的9092端口,因为没有指定host,所以是0.0.0.0标识所有的网络接口。
KAFKA_ADVERTISED_LISTENERS:kafka发布到zookeeper供客户端使用的服务地址。
ALLOW_PLAINTEXT_LISTENER :允许使用PLAINTEXT侦听器。
6.6.3.进入容器
6.6.3.1.进入kafka交互模式
dockerexec-it kafka0 /bin/bash
6.6.3.2.跳转到kafka目录
kafka的各个脚本都在:
/opt/bitnami/kafka/bin
下面, 转到这个目录
cd /opt/bitnami/kafka/bin
6.6.3.3.创建topic
./kafka-topics.sh --create --topic test-kafka0 --replication-factor 1 --partitions 1 --bootstrap-server 192.168.3.251:9092
参数解释
–create 表示创建
–topic 指定主题名称
–replication-factor 指定副本数
–partitions 指定分区数
–bootstrap-server 连接kafka服务器
6.6.3.4.查看topic列表
./kafka-topics.sh --list --bootstrap-server 192.168.3.251:9092
查看topic列表 , 会列出已经创建的topic
kafka-topics.sh --describe--topic test-kafka0 --bootstrap-server 192.168.3.251:9092
–describe 表示查看描述信息
6.6.3.5.生产者生产消息
kafka-console-producer.sh --topic test-kafka0 --bootstrap-server 192.168.3.251:9092
在打开的界面输入信息
6.6.3.6.消费者消费消息
打开一个界面, 再次进入容器交互模式
kafka-console-consumer.sh --topic test-kafka0 --from-beginning --bootstrap-server 192.168.3.251:9092
其中,
--from-beginning
表示会消费历史消息,如果不配置,只能消费消费者节点上线之后生产者发送的消息。
版权归原作者 春哥的魔法书 所有, 如有侵权,请联系我们删除。