无法将 spring boot 与在 docker 容器中运行的 kafka 连接

问题描述 投票:0回答:1

我正在使用

docker-compose.yml
运行 kafka。我
docker-compose.yml
的内容是:

version: "3.8"
name: "event-driven-systems"
services:
  kafka:
    container_name: "kafka"
    image: "bitnami/kafka:latest"
    networks:
      - internal
    ports:
      - "9092:9092"
    volumes:
      - "kafka_data:/bitnami"
    environment:
      - KAFKA_CFG_NODE_ID=0
      - KAFKA_CFG_PROCESS_ROLES=controller,broker
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
networks:
  internal:
    driver: "bridge"
volumes:
  kafka_data:
    driver: local

我正在使用 spring 的 kafka 依赖项连接到正在运行的 kafka 服务。 在 Spring Boot 的 application.yml 文件中,我有这个:

kafka-topic:
  name: "location-update-topic"

spring:
  kafka:
    producer:
      bootstrap-servers: "localhost:9092"
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

server:
  port: 8081

但我收到此错误:

2023-08-30T20:54:01.884+05:30  WARN 263120 --- [| adminclient-1] org.apache.kafka.clients.NetworkClient   : [AdminClient clientId=adminclient-1] Error connecting to node 596afe8fbe94:9092 (id: 0 rack: null)

java.net.UnknownHostException: 596afe8fbe94
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801) ~[na:na]
        at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1524) ~[na:na]
        at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1381) ~[na:na]
        at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1305) ~[na:na]
        at org.apache.kafka.clients.DefaultHostResolver.resolve(DefaultHostResolver.java:27) ~[kafka-clients-3.4.1.jar:na]
        at org.apache.kafka.clients.ClientUtils.resolve(ClientUtils.java:110) ~[kafka-clients-3.4.1.jar:na]
...

如何解决这个问题。我是第一次使用kafka。

java spring-boot docker apache-kafka spring-kafka
1个回答
0
投票

尝试主机就在那里安装应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.