无法从Docker中的规模化Kafka集群访问主题

时间:2018-07-19 13:00:37

标签: docker apache-kafka docker-compose dockerhub

我想在docker上创建可扩展的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:9092zookeeper:2181的身份在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
    deploy:
      replicas: 3
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2185:2181"

在这种情况下,将创建3个kafka经纪人。但是,在这种情况下,如果无法在应用程序代码的kafka使用者设置中使用kafka代理作为kafka:9092和kafka zookeeper作为zookeepr:2181来访问主题“检查”。我应该如何修改我的docker-compose.yml或我的应用程序代码kafka使用者设置,以便可以从这些多个代理中读取信息?

0 个答案:

没有答案