美文网首页
docker 安装zookeeper+kafka单节点

docker 安装zookeeper+kafka单节点

作者: 假程序猿 | 来源:发表于2019-04-29 12:19 被阅读0次
    1. 下载镜像
    # zookeeper镜像
    docker pull wurstmeister/zookeeper
    # kafka镜像
    docker pull wurstmeister/kafka
    # kafka管理镜像
    docker pull sheepkiller/kafka-manager
    
    2. 已下载的镜像
    docker images
    
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    wurstmeister/kafka          latest              c364cbed5b86        13 days ago         421MB
    wurstmeister/zookeeper      latest              2a7f6fc5c8a1        2 weeks ago         150MB
    sheepkiller/kafka-manager   latest              4e4a8c5dabab        12 months ago       463MB
    
    3. zookeeper安装
    docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper
    

    查看zookeeper启动日志

    docker logs -f zookeeper 
    
    # 开始启动
    2019-04-29 03:57:18,342 [myid:] - INFO  [main:QuorumPeerConfig@136] - Reading configuration from: /conf/zoo.cfg
    ...
    ...
    2019-04-29 03:57:18,425 [myid:] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
    # 启动成功
    

    验证:
    下载zookeeper图形化客户端工具:ZooInspector

    zoo1.png zoo2.png
    4. kafka安装
    docker run -d --name kafka \
    --env KAFKA_ADVERTISED_HOST_NAME=localhost \
    --env KAFKA_ZOOKEEPER_CONNECT=10.30.2.222:2181 \
    --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.30.2.222:9092 \
    --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
    --env KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" \
    --net=host wurstmeister/kafka
    

    注意
    1、10.30.2.222是宿主机ip
    2、--net=host 表示使用与宿主机网络模式(网络模式有很多种,详细介绍见: Docker:网络模式详解)

    查看kafka启动日志

    docker logs -f kafka
    
    # 开始启动
    Excluding KAFKA_HOME from broker config
    [Configuring] 'advertised.host.name' in '/opt/kafka/config/server.properties'
    [Configuring] 'port' in '/opt/kafka/config/server.properties'
    ...
    ...
    [2019-04-29 04:09:49,156] INFO Kafka version: 2.2.0 (org.apache.kafka.common.utils.AppInfoParser)
    [2019-04-29 04:09:49,156] INFO Kafka commitId: 05fcfde8f69b0349 (org.apache.kafka.common.utils.AppInfoParser)
    [2019-04-29 04:09:49,157] INFO [KafkaServer id=1001] started (kafka.server.KafkaServer)
    # 启动成功
    

    验证:
    进入kafka容器

    docker exec -it kafka /bin/bash
    # 进入kafka的bin目录
    cd /opt/kafka_2.12-2.2.0/bin/
    

    新建一个test主题,并以生产者身份进行消息生产

    ./kafka-topics.sh --create --zookeeper 10.30.2.222:2181 --replication-factor 1 --partitions 1 --topic test
    ./kafka-console-producer.sh --broker-list 10.30.2.222:9092 --topic test
    >hello # 发送一条消息并回车
    >world
    

    打开一个新的ssh连接,同样进入kafka容器,模拟消费者接收消息

    docker exec -it kafka /bin/bash
    # 进入kafka的bin目录
    cd /opt/kafka_2.12-2.2.0/bin/
    # 以消费者身份接收消息
    ./kafka-console-consumer.sh --bootstrap-server 10.30.2.222:9092 --topic test --from-beginning
    hello # 成功接收到消息
    world
    

    不断在生产者端发送消息,消费者端可以不断的接收到消息。kafka安装成功!

    同样,在zookeeper可视化工具,刷新后可以看到kafka的相关数据节点:


    zoo3.png
    5. kafka-manager安装
    docker run -d --name kafka-manager -e ZK_HOSTS="10.30.2.222:2181" --net=host sheepkiller/kafka-manager
    firewall-cmd --add-port=9000/tcp
    

    访问:http://10.30.2.222:9000,并添加一个cluster即可。

    相关文章

      网友评论

          本文标题:docker 安装zookeeper+kafka单节点

          本文链接:https://www.haomeiwen.com/subject/tyfynqtx.html