代码之家  ›  专栏  ›  技术社区  ›  rishi007bansod

无法从Docker中的scaled Kafka群集访问主题

  •  1
  • rishi007bansod  · 技术社区  · 6 年前

    我想在dockers上创建可伸缩的Kafka集群。我正在使用docker图像 https://hub.docker.com/r/wurstmeister/kafka/ 用于创建kafka服务器。为了创建单节点kafka和zookeeper,我使用了以下docker compose:

    version: '3.1'
    services:
      kafka:
        image: "wurstmeister/kafka"
        ports:
         - "9095:9092"
        hostname: kafka
        depends_on:
         - zookeeper
        environment:
         - KAFKA_ADVERTISED_HOST_NAME=kafka
         - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
         - KAFKA_ADVERTISED_PORT=9092
         - KAFKA_CREATE_TOPICS=check:3:1
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2185:2181"
    

    通过这些设置,我可以从我的应用程序代码中访问kafka broker和zookeeper kafka:9092 zookeeper:2181 分别在卡夫卡的消费者设置。

    但现在我想要可伸缩的集群,所以我修改了docker compose为:

    version: '3.1'
    
    services:
      kafka:
        image: "wurstmeister/kafka"
        ports:
         - "9095:9092"
        hostname: kafka
        depends_on:
         - zookeeper
        environment:
         - KAFKA_ADVERTISED_HOST_NAME=kafka
         - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
         - KAFKA_ADVERTISED_PORT=9092
         - KAFKA_CREATE_TOPICS=check:3:1
        deploy:
          replicas: 3
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2185:2181"
    

    在这种情况下,将创建3个卡夫卡经纪人。但是,在这种情况下,如果我不能通过使用kafka broker访问我的主题“check” 卡夫卡:9092 卡夫卡动物园管理员 zookeepr:2181 在我的应用程序代码的kafka使用者设置中。我该如何修改 docker-compose.yml 或者我的应用程序代码是kafka consumer settings,这样我就可以从这些多个代理中读取?

    0 回复  |  直到 6 年前