飞道的博客

Docker ( 五 ) 安装 Kafka

330人阅读  评论(0)

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 -p 2181: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/kafkabitnami/kafka

6.6.2.1.拉取kafka

本次选用的是后者 bitnami/kafka 。

docker pull bitnami/kafka:latest

6.6.2.2.启动kafka容器

docker run -d  --name kafka0 -p 9092:9092 \
 --privileged=true \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.3.251:2181 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.251:9092 \
-e ALLOW_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交互模式

docker exec -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表示会消费历史消息,如果不配置,只能消费消费者节点上线之后生产者发送的消息。


转载:https://blog.csdn.net/yuanchun05/article/details/128423824
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场