Mac 下使用 docker 搭建 kafka环境

由于 kafka 依赖 zookeeper,因此需要使用 docker 同时安装 zookeeper 和 kafka。

x01 安装 zookeeper

1) 先下载zookeeper镜像

> docker search zookeeper
> docker pull wurstmeister/zookeeper

2)启动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 wurstmeister/zookeeper

x02 安装 kafka

1) 先下载kafka镜像

> docker search kafka
> docker pull wurstmeister/kafka

2)启动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=host.docker.internal:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://host.docker.internal:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

x03 消息验证

1)进入kakfa容器

> dcker exec -it kafka bash
> cd /opt/kafka/bin

可以看到很多的脚本:

> ls
connect-distributed.sh               kafka-console-producer.sh            kafka-leader-election.sh             kafka-run-class.sh                   trogdor.sh
connect-mirror-maker.sh              kafka-consumer-groups.sh             kafka-log-dirs.sh                    kafka-server-start.sh                windows
connect-standalone.sh                kafka-consumer-perf-test.sh          kafka-mirror-maker.sh                kafka-server-stop.sh                 zookeeper-security-migration.sh
kafka-acls.sh                        kafka-delegation-tokens.sh           kafka-preferred-replica-election.sh  kafka-streams-application-reset.sh   zookeeper-server-start.sh
kafka-broker-api-versions.sh         kafka-delete-records.sh              kafka-producer-perf-test.sh          kafka-topics.sh                      zookeeper-server-stop.sh
kafka-configs.sh                     kafka-dump-log.sh                    kafka-reassign-partitions.sh         kafka-verifiable-consumer.sh         zookeeper-shell.sh
kafka-console-consumer.sh            kafka-features.sh                    kafka-replica-verification.sh        kafka-verifiable-producer.sh

2)测试生产者和消费者
生产者

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

消费者(需要另起一个终端)

./kafka-console-consumer.sh --bootstrap-server host.docker.internal:9092 --topic test-topic --from-beginning

注意⚠️:
这里向zookeeper注册的时候,使用的是host.docker.internal,我们在程序中连接kafka的时候,直接使用localhost会报错,如:Error connecting to node host.docker.internal:9092,其处理方式:

  • 可以在本机的 host 文件中,添加映射,将 127.0.0.1 host.docker.internal;
  • 不使用host.docker.internal,而是使用自己主机IP,但是当IP发生变化的时候,就要重新配置。

x04 kafka 集群模式搭建

新建kafka实例:

> docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=host.docker.internal:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://host.docker.internal:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -v /etc/localtime:/etc/localtime wurstmeister/kafka
  1. 更改 broker.id: KAFKA_BROKER_ID 0,1,2
  2. 更改端口号:9092,9093,9094

x05 kafka-manger 安装

1)安装

> docker pull sheepkiller/kafka-manager

2)启动

docker run -d --name kfk-manager --restart always -p 9000:9000 -e ZK_HOSTS=<这里换成你的zookeeper地址和端口> sheepkiller/kafka-manager

3)访问地址 localhost:9000
在这里插入图片描述
配置上自己的zookeeper地址;
注意⚠️:
我最开始配置的是localhost:2181,发现无法查询到自己的broker信息;后来到zookeeper看了下,需要再加一下路径
localhost:2181/kafka 就可以了。

猜你喜欢

转载自blog.csdn.net/wjavadog/article/details/129907499