在localhost上启动多个kafka节点(docker compose)

k2arahey  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(645)

我正在尝试启动一个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\u servers\u config=plaintext://127.0.0.1:9092".
显然,如果我使用docker compose scale kafka=3,我会得到一个错误,因为localhost上的端口9092已经被使用了。
根据文件:https://github.com/wurstmeister/kafka-docker/wiki/connectivity ,我尝试这样更改端口:

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\u servers\u config=plaintext://127.0.0.1:9092“由于超时,我的制作者无法发送消息。这意味着切入点不是Kafka听众或Kafka听众。

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

我想Kafka的听众和Kafka的听众有些奇怪,但我找不到一个办法来让它工作。
在我最后一次尝试中,我做到了:

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

但这并没有得到任何正确的结果。如果有人有主意,请告诉我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题