zoukankan      html  css  js  c++  java
  • 在docker环境下部署kafka集群

    利用docker可以很方便的在一台机子上搭建kafka集群并进行测试。为了简化配置流程,我们采用docker-compose进行进行搭建。
    docker环境的部署参考:https://www.cnblogs.com/Rostov/p/13494838.html
    docker-compose的部署参考:https://www.cnblogs.com/Rostov/p/13528918.html
    kafka搭建过程如下:

    1. 编写docker-compose.yml文件,内容如下:
    version: '3.3'
    
    
    services:
            zookeeper:
                    image: wurstmeister/zookeeper
                    ports:
                            - 2181:2181
                    container_name: zookeeper
                    networks:
                            default:
                                    ipv4_address: 172.19.0.11
            kafka0:
                    image: wurstmeister/kafka
                    depends_on:
                            - zookeeper
                    container_name:kafka0
                    ports:
                            - 9092:9092
                    environment:
                            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka0:9092
                            KAFKA_LISTENERS: PLAINTEXT://kafka0:9092
                            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
                            KAFKA_BROKER_ID: 0
                    volumes:
                            - /home/icefalcon/kafka0/data:/data
                            - /home/icefalcon/kafka0/log:/datalog
                    networks:
                            default:
                                    ipv4_address: 172.19.0.12
            kafka1:
                    image: wurstmeister/kafka
                    depends_on:
                            - zookeeper
                    container_name:kafka1
                    ports:
                            - 9093:9093
                    environment:
                            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9093
                            KAFKA_LISTENERS: PLAINTEXT://kafka1:9093
                            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
                            KAFKA_BROKER_ID: 1
                    volumes:
                            - /home/icefalcon/kafka1/data:/data
                            - /home/icefalcon/kafka1/log:/datalog
                    networks:
                            default:
                                    ipv4_address: 172.19.0.13
            kafka2:
                    image: wurstmeister/kafka
                    depends_on:
                            - zookeeper
                    container_name:kafka2
                    ports:
                            - 9094:9094
                    environment:
                            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9094
                            KAFKA_LISTENERS: PLAINTEXT://kafka2:9094
                            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
                            KAFKA_BROKER_ID: 2
                    volumes:
                            - /home/icefalcon/kafka2/data:/data
                            - /home/icefalcon/kafka2/log:/datalog
                    networks:
                            default:
                                    ipv4_address: 172.19.0.14
    networks:
            default:
                    external:
                            name: zookeeper_kafka
    
    
    
    1. 创建子网
      docker network create --subnet 172.19.0.0/16 --gateway 172.19.0.1 zookeeper_kafka
    2. 执行docker-compose命令进行搭建
      docker-compose -f docker-compose.yml up -d
      输入docker ps -a 命令如能查看到我们启动的三个服务且处于运行状态说明部署成功
    1. 测试kafka
      输入docker exec -it kafka0 bash 进入kafka0容器,并执行如下命令创建topic
      /opt/kafka_2.13-2.6.0/bin/kafka-topics.sh --create --topic chat --partitions 5 --zookeeper 192.168.199.163:2181 --replication-factor 3 Created topic chat.
      输入如下命令开启生产者
      /opt/kafka_2.13-2.6.0/bin/kafka-console-producer.sh --broker-list kafka0:9092 --topic chat
      开启另一个shell界面进入kafka2容器并执行下列命令开启消费者
    /opt/kafka_2.13-2.6.0/bin/kafka-console-consumer.sh  --bootstrap-server kafka2:9094 --topic chat --from-beginning
    

    回到生产者shell输入消息,看消费者shell是否会出现同样的消息,如果能够出现说明kafka集群搭建正常。

  • 相关阅读:
    hmac模块
    hashlib模块
    内存监控
    在全局对象(不是指针)的构造函数里不要对std集合做太多操作
    Lucene 4.X 倒排索引原理与实现
    Git工作流指南
    Spring cloud 框架 --- Eureka 心得
    分布式 的理解
    集群的理解
    Thrift框架-安装
  • 原文地址:https://www.cnblogs.com/Rostov/p/13530423.html
Copyright © 2011-2022 走看看