docker 安装kafka

安装zookpeeper

docker pull zookeeper # 如果下载超时使用docker search zookeeper 查找其他镜像
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper

如果报错

Failed to start thread "GC Thread#0" - pthread_create failed (EPERM) for attributes: stacksize: 1024k, guardsize: 4k, detached.

更换zookeeper版本,比如zookeeper:3.7.0

安装kafka

# -v /etc/localtime:/etc/localtime 容器使用开发机时间
docker pull wurstmeister/kafka

docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.139/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.139:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

参数说明

参数说明:
-e KAFKA_BROKER_ID=0  在kafka集群中,每个kafka都有一个BROKER_ID来区分自己

-e KAFKA_ZOOKEEPER_CONNECT=192.168.0.139:2181/kafka 配置zookeeper管理kafka的路径192.168.0.139:2181/kafka

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.139:9092  把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。

-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口

-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

验证是否可用

进入容器

docker exec -it kafka bash

#  进入kafka自带测试脚本目录, kafka_2.13-2.8.1为我的kafka,安装版本不同可以,根据情况修改
cd /opt/kafka_2.13-2.8.1/bin/

打开消费脚本

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic

image

打开生产脚本发送消息,消费脚本能收到消息,说明配置成功

./kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic

image

新建topic

kafka-topics.sh --create --zookeeper 192.168.31.251:2181/kafka --replication-factor 1 --partitions 12 --topic mytest

image

列出当前topic

kafka-topics.sh --list --zookeeper 192.168.31.251:2181/kafka

image

参数

参数名 作用 备注
KAFKA_BROKER_ID kafka唯一id,用来区分不同节点
KAFKA_ZOOKEEPER_CONNECT zookeepe连接地址
KAFKA_ADVERTISED_LISTENERS
KAFKA_LISTENERS 配置kafka的监听端

报错解决

WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 3 : {sun=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
posted @ 2022-01-25 21:39  奔跑的兔  阅读(1906)  评论(0编辑  收藏  举报