在本地主机上启动多个kafka节点(docker compose)

在本地主机上启动多个kafka节点(docker compose),docker,apache-kafka,docker-compose,Docker,Apache Kafka,Docker Compose,我正在尝试启动docker kafka并在本地主机上扩展它。这是我的初始docker-compose.yml: version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092:9092" environment:

我正在尝试启动docker kafka并在本地主机上扩展它。这是我的初始docker-compose.yml:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
        KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
当我使用BOOTSTRAP_SERVERS_CONFIG=“PLAINTEXT://127.0.0.1:9092”进行请求时,这种方法非常有效

显然,如果我使用docker compose scale kafka=3,我将得到一个错误,因为本地主机上的端口9092已被使用

根据文档:,我试图更改端口,如下所示:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092"
    environment:
        KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
这样,如果我使用BOOTSTRAP_SERVERS_CONFIG=“PLAINTEXT://127.0.0.1:9092”请求,则由于超时,我的生产者无法发送消息。这意味着切入点不是卡夫卡听众或卡夫卡听众

java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
如果我使用docker已绑定的端口(32001):BOOTSTRAP\u SERVERS\u CONFIG=“PLAINTEXT://127.0.0.1:32001”我在尝试发送消息时收到不同的错误消息:

java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for demo-0:120001 ms has passed since batch creation
我想卡夫卡的听众和卡夫卡的广告听众有些奇怪,但我找不到一个办法让它发挥作用

在上一次尝试中,我做到了:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9093:9092"
    environment:
        KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # or PLAINTEXT://0.0.0.0:9093
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 # or PLAINTEXT://127.0.0.1:9093 
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
但这并没有得到任何正确的结果。
如果有人有主意,请告诉我

你需要更清楚地定义你所说的“我不能让任何东西工作”是什么意思。你收到错误信息了吗?如果是,什么?日志文件?等等。我的制作人在尝试发送消息时无法连接到卡夫卡(超时)。我会再运行一次,这样我就可以准确地写日志了。