簡體   English   中英

Kafka 和 zookeeper docker 容器在主機上與我的 api 對話

[英]Kafka and zookeeper docker containers talking to my api on the host machine

步驟1:\

我已經按照本指南中的一些步驟創建了一個 zookeeper 容器並將其連接到 Kafka 容器,以便它們可以通過本地端口相互通信。 我還創建了一個帶有 1 個分區的主題“foo”,並在其中使用 docker 命令發送了 42 條消息。 據我了解,我的本地操作系統(localhost:29092)上有一個 Kafka 端口,它可以生成和收聽消息。

docker 命令運行zookeeper容器:

docker run -d --net=host --name=zookeeper -e ZOOKEEPER_CLIENT_PORT=32181 confluentinc/cp-zookeeper:4.0.0   

docker 命令運行 kafka 容器:

docker run -d --net=host --name=kafka -e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 confluentinc/cp-kafka:4.0.0

在此處輸入圖像描述

第2步:\

接下來,我試圖在我的 Springboot 啟動 API 中連接我的 Kafka 生產者和消費者腳本,而沒有任何 docker-compose 到這個端口,如下所示(我想證明這兩個容器是否能夠作為一個正常的 Kafka 分布我的主機操作系統):

public class KafkaProducer {private static final String TOPIC = "foo";...}
public class KafkaConsumer { @KafkaListener(topics = "foo", groupId = "group1")...}

spring.kafka.producer.bootstrap-servers: localhost:29092
spring.kafka.consumer.bootstrap-servers: localhost:29092

結果,我收到了這些錯誤:

2020-12-23 14:38:45.937  WARN 14056 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-group1-1, groupId=group1] Connection to node -1 (localhost/127.0.0.1:29092) could not be established. Broker may not be available.
2020-12-23 14:38:45.937  WARN 14056 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-group1-1, groupId=group1] Bootstrap broker localhost:29092 (id: -1 rack: null) disconnected.

你能告訴我我做錯了什么嗎? 我對 Java、Kafka 和 Docker 完全陌生。 我應該閱讀什么才能更好地理解它?

出於某種原因,它適用於新版本的指南。

https://docs.confluent.io/platform/current/quickstart/ce-docker-quickstart.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM