目 录CONTENT

文章目录

Docker搭建Kafka

成培培
2021-01-28 / 0 评论 / 0 点赞 / 38 阅读 / 0 字

前言

最近学习开源物联网平台Thingsboard项目,项目中用到zookeeper、kafka等中间件,这里在本机使用docker搭建kafka的本地开发环境,docker以及docker-compose怎么安装这里不做赘述

一、搭建步骤

1.选择版本

因为thingsboard3.2官方使用的zookeeper版本是3.5,kafka版本是2.12-2.3.0,跟他的版本保持一致

2.编写docker-compose文件

代码如下(示例):


version: '3'
services:
  zookeeper:
    image: zookeeper:3.5
    container_name: zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka:2.12-2.3.0
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 172.16.103.2
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_BROKER_ID: 1
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.103.2:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    container_name: kafka
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

注意:KAFKA_ADVERTISED_HOST_NAME需要填docker宿主机的IP,不要填localhost或者127.0.0.1,KAFKA_ZOOKEEPER_CONNECT里面的主机名用上面zookeeper的容器名

3.运行容器

在docker-compose对应的文件夹下运行以下命令:

docker-compose up -d

总结

之前用wurstmeister/zookeeper的这个zookeeper镜像搭起来跟thingsboard的不兼容有报错,但是改wurstmeister/zookeeper版本很麻烦,https://github.com/wurstmeister/zookeeper-docker/blob/master/Dockerfile里面的改个版本号对应的下载链接都没有了,所以直接替换了kafka官方的镜像,最后thingsboard里有个js执行器需要用到zookeeper,所以单独启动一个js执行器的镜像使用这个zookeeper

docker run -d --name js-executor --link zookeeper:zookeeper --net desktop_default -e TB_KAFKA_SERVERS="kafka:9092" chengpeipei/js-executor:3.2

其中desktop_default是通过docker inspect zookeeper,找到Networks信息确定的

0

评论区