当前位置:   article > 正文

使用docker-compose 搭建 kafka集群 + 可视化工具_docker 安装 kafka和可视化界面

docker 安装 kafka和可视化界面

Docker-compose简介


Docker Compose是一个用来定义和运行复杂应用的Docker工具。

        一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 
        Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

kafka 集群搭建

注意:使用 docker-compose 搭建,需要先安装

  1. # 官方地址
  2. sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  3. # 国内镜像
  4. curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

授权

  1. # 授权
  2. sudo chmod +x /usr/local/bin/docker-compose
  3. # 查看一下version,显示有版本号那就说明安装成功了
  4. docker-compose version

创建目录

mkdir /usr/local/docker/kafka

进入目录

cd /usr/local/docker/kafka

创建 docker-compose 文件

vim docker-compose.yml

 温馨提示 

("//"  不要删   “服务器ip”  替换即可)

(“zookeeper容器ip”  需要启动 zookeeper 之后查询   启动和查询方法在下面  ↓     直接替换   )

  1. version: '3'
  2. networks:
  3. docker_network:
  4. external: false
  5. services:
  6. zookeeper:
  7. image: wurstmeister/zookeeper
  8. networks:
  9. - docker_network
  10. container_name: zookeeper
  11. ports:
  12. - 12181:2181
  13. environment:
  14. - TZ=Asia/Shanghai
  15. kafka:
  16. image: wurstmeister/kafka
  17. networks:
  18. - docker_network
  19. container_name: kafka00
  20. ports:
  21. - 19090:19090
  22. environment:
  23. - TZ=Asia/Shanghai
  24. - KAFKA_BROKER_ID=0
  25. - KAFKA_ZOOKEEPER_CONNECT=zookeeper容器ip:2181
  26. - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://服务器ip:19090
  27. - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:19090
  28. kafka1:
  29. image: wurstmeister/kafka
  30. networks:
  31. - docker_network
  32. container_name: kafka01
  33. ports:
  34. - 19091:19091
  35. environment:
  36. - TZ=Asia/Shanghai
  37. - KAFKA_BROKER_ID=1
  38. - KAFKA_ZOOKEEPER_CONNECT=zookeeper容器ip:2181
  39. - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://服务器ip:19091
  40. - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:19091
  41. kafka2:
  42. image: wurstmeister/kafka
  43. networks:
  44. - docker_network
  45. container_name: kafka02
  46. ports:
  47. - 19092:19092
  48. environment:
  49. - TZ=Asia/Shanghai
  50. - KAFKA_BROKER_ID=2
  51. - KAFKA_ZOOKEEPER_CONNECT=zookeeper容器ip:2181
  52. - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://服务器ip:19092
  53. - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:19092

 启动

zk:

docker-compose up -d zookeeper

查询容器ip     

  1.  docker inspect 容器id
  2. /// 运行完 翻到最下面 查看容器ip 并保存备用

重点修改 docker-compose 文件  中   zookeeper   ip

启动

kafka00:

docker-compose up -d kafka

kafka01:

docker-compose up -d kafka1

kafka02:

docker-compose up -d kafka2

创建一个测试主题

进入kafka00容器

docker exec -it kafka00 bash

创建一个主题

/opt/kafka/bin/kafka-topics.sh --create --zookeeper zk容器ip:2181 --replication-factor 3 --partitions 5 --topic TestTopic

查看主题情况

建议在打开两个ssh连接的窗口 (自行进入)

查看主题

/opt/kafka/bin/kafka-topics.sh --describe --zookeeper zk容器ip:2181 --topic TestTopic

其他的几个容器也应该是一样的。。。省略

发送消息测试

        记得放开19090、19091、19092端口 接下来,分别在kafka00上运行一个生产者,kafka01、02上分别运行一个消费者:

生产者:

/opt/kafka/bin/kafka-console-producer.sh --broker-list 服务器ip:当前kafka端口(9090) --topic TestTopic

消费者 (分别在kafka01,kafka02)

  1. kafka01
  2. /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 服务器ip:当前kafka端口(9091) --topic TestTopic --from-beginning
  3. kafka02
  4. /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 服务器ip:当前kafka端口(9092) --topic TestTopic --from-beginning

然后在生产者发消息:

 看两个消费者是否都能接收

 

 安装完成

kafka-map 可视化工具

.

 只需一行命令      

  1. // 这里因为 8080端口占用 故映射其他端口 根据个人爱好设置
  2. docker run -d -p 9001:8080 -v /opt/kafka-map/data:/usr/local/kafka-map/data -e DEFAULT_USERNAME=admin -e DEFAULT_PASSWORD=admin --name kafka-map --restart always dushixiang/kafka-map:latest
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/651993
推荐阅读
相关标签
  

闽ICP备14008679号