当前位置:   article > 正文

docker搭建kafka集群+ZK_使用docker部署单机zk+kafka集群

使用docker部署单机zk+kafka集群

在写kafka之前,docker搭建一套kafka集群环境,用的腾讯云,这里真的不得不吐槽一下:腾讯云的体验比阿里云强,阿里云要不你反思反思?

1、创建子网,管理方便一点

docker network create --subnet 172.19.0.0/16 --gateway 172.19.0.1 zookeeper_kafka

2、创建docker-compose.yml文件,cat vi都可以

  1. version: '3.3'
  2. services:
  3. zookeeper:
  4. image: wurstmeister/zookeeper
  5. ports:
  6. - 2181:2181
  7. container_name: zookeeper
  8. networks:
  9. default:
  10. ipv4_address: 172.19.0.11
  11. kafka0:
  12. image: wurstmeister/kafka
  13. depends_on:
  14. - zookeeper
  15. container_name: kafka0
  16. ports:
  17. - 9092:9092
  18. environment:
  19. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka0:9092
  20. KAFKA_LISTENERS: PLAINTEXT://kafka0:9092
  21. KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
  22. KAFKA_BROKER_ID: 0
  23. volumes:
  24. - /root/data/kafka0/data:/data
  25. - /root/data/kafka0/log:/datalog
  26. networks:
  27. default:
  28. ipv4_address: 172.19.0.12
  29. kafka1:
  30. image: wurstmeister/kafka
  31. depends_on:
  32. - zookeeper
  33. container_name: kafka1
  34. ports:
  35. - 9093:9093
  36. environment:
  37. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9093
  38. KAFKA_LISTENERS: PLAINTEXT://kafka1:9093
  39. KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
  40. KAFKA_BROKER_ID: 1
  41. volumes:
  42. - /root/data/kafka1/data:/data
  43. - /root/data/kafka1/log:/datalog
  44. networks:
  45. default:
  46. ipv4_address: 172.19.0.13
  47. kafka2:
  48. image: wurstmeister/kafka
  49. depends_on:
  50. - zookeeper
  51. container_name: kafka2
  52. ports:
  53. - 9094:9094
  54. environment:
  55. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9094
  56. KAFKA_LISTENERS: PLAINTEXT://kafka2:9094
  57. KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
  58. KAFKA_BROKER_ID: 2
  59. volumes:
  60. - /root/data/kafka2/data:/data
  61. - /root/data/kafka2/log:/datalog
  62. networks:
  63. default:
  64. ipv4_address: 172.19.0.14
  65. kafka3:
  66. image: wurstmeister/kafka
  67. depends_on:
  68. - zookeeper
  69. container_name: kafka3
  70. ports:
  71. - 9095:9095
  72. environment:
  73. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9095
  74. KAFKA_LISTENERS: PLAINTEXT://kafka3:9095
  75. KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
  76. KAFKA_BROKER_ID: 3
  77. volumes:
  78. - /root/data/kafka3/data:/data
  79. - /root/data/kafka3/log:/datalog
  80. networks:
  81. default:
  82. ipv4_address: 172.19.0.15
  83. kafka-manager:
  84. image: sheepkiller/kafka-manager:latest
  85. restart: unless-stopped
  86. container_name: kafka-manager
  87. hostname: kafka-manager
  88. ports:
  89. - "9000:9000"
  90. links: # 连接本compose文件创建的container
  91. - kafka1
  92. - kafka2
  93. - kafka3
  94. external_links: # 连接本compose文件以外的container
  95. - zookeeper
  96. environment:
  97. ZK_HOSTS: zoo1:2181 ## 修改:宿主机IP
  98. TZ: CST-8
  99. networks:
  100. default:
  101. external:
  102. name: zookeeper_kafka

在没有端口占用的情况下可以直接复制使用

3、之后docker-compose启动,别再问这里-d啥意思了,不懂百度

docker-compose -f docker-compose.yml up -d

 截图一下成功的模样

 4、测试kafka生产者消费者

进入kafka0,

docker exec -it kafka0 /bin/bash

进入脚本文件目录

cd /opt/kafka_2.13-2.7.1/bin/

创建topic为chat的主题,

kafka-topics.sh --create --topic chat --partitions 5 --zookeeper 8.210.138.111:2181 --replication-factor 3

运行生产者脚本

kafka-console-producer.sh --broker-list kafka0:9092 --topic chat

再开一个客户端,进入kafka1,2,3都行,进入bin脚本文件目录

运行消费者脚本

kafka-console-consumer.sh --bootstrap-server kafka2:9094 --topic chat --from-beginning

在生产者窗口直接发送消息

 在消费者窗口能看到消息

 基本搭建就结束了

之后差一个kafka manager客户端

这玩意要用kubernates去安装,你要先安装kubernates,这里我们先埋个坑,因为我想用kibana去做一个类似kafka manager的东西,我们先用这样的集群已经没有问题了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/382927
推荐阅读
相关标签
  

闽ICP备14008679号