搭建单机kafka选型

  • 选择docker容器内集成 kafka,zookeeper 的容器

    1
    2
    ## 找到的这个 容器设置了 kafka的hostname和 zookeeper的ip ,
    docker run -d -e ADVERTISED_HOSTNAME=$(hostname -f) -e KAFKA_ADVERTISED_HOST_NAME=192.168.248.128 -e ZOOKEEPER_IP=192.168.248.128 -p 9092:9092 -p 2181:2181 --restart=always jrottenberg/kafka-standalone

    基于上面的容器是可以运行 获取到了zookeeper的broker 但是kafka是连接不上

  • docker-composer 来执行

    参考第 https://github.com/conduktor/kafka-stack-docker-compose

    但是还有有个问题,我搭建的环境是离线的,尽量还是以 docker命令来执行减少安装其他软件

  • 原始的 kafka,zookeeper 分开安装,在设置环境变量(选用的方案)

前置需要安装的软件

prettyZoo 查看zookeeper很方便

cmak (kafka manage) kafka监控软件

安装过程

https://ioccc.cc/2018/12/12/zookeeper-kafka/ 改部分参考该篇博文

运行zookeeper

1
2
3
docker run -d --name zookeeper --publish 2181:2181 \
--volume /etc/localtime:/etc/localtime \
zookeeper:latest

运行kafka

1
2
3
4
5
6
7
docker run -d --name kafka --publish 9092:9092 \
--link zookeeper \
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=HOST_IP \
--env KAFKA_ADVERTISED_PORT=9092 \
--volume /etc/localtime:/etc/localtime \
wurstmeister/kafka:latest

进去容器

1
2
3
docker  exec -it  <ID> /bash/sh

cd /opt/kafka**/bin

创建topic 名为test

kafka-topics.sh –create –zookeeper zookeeper:2181 –replication-factor 1 –partitions 1 –topic test

列出所有的topic

kafka-topics.sh –list –zookeeper zookeeper:2181

创建生产者输入测试信息

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

kafka-console-consumer.sh –bootstrap-server localhost:9092 –topic test –from-beginning

tips

需要将 KAFKA_ADVERTISED_HOST_NAME=HOST_IP 改为 docker所在的ip

在cmak中是看不到 topic.需要 用3.3.1 的命令去创建

image-20210307132400145