簡體   English   中英

無法從通過 intellij 運行的 spring 引導應用程序連接到我在 docker 上運行的 kafka

[英]Can't connect to my kafka running on docker from spring boot application running via intellij

我有一個帶有 Kafka、zookeeper 和 spring 引導應用程序的 docker-compose 文件。 當我運行整個文件時,一切正常。 當我在沒有 spring 啟動應用程序的情況下運行它以通過 intellij 對其進行調試時,它無法連接到 Kafka 並且無法正常工作。

我的 docker-compose 文件:

 version: "3.5" services:   # Install Zookeeper.   zookeeper:
    container_name: zookeeper
    image: debezium/zookeeper:1.2
    networks:
      - mynetwork
    ports:
      - 2181:2181
      - 2888:2888
      - 3888:3888   # Install Kafka.   kafka:
    container_name: kafka
    image: debezium/kafka:1.2
    depends_on:
      - zookeeper
    ports:
      - 9092:9092
      - 29092:29092
    networks:
      - mynetwork
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP= INTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL_SAME_HOST:PLAINTEXT
      - KAFKA_ADVERTISED_LISTENERS= INTERNAL://kafka:9092,EXTERNAL_SAME_HOST://localhost:29092
      - KAFKA_LISTENERS= EXTERNAL_SAME_HOST://:29092,INTERNAL://:9092
      - KAFKA_INTER_BROKER_LISTENER_NAME= PLAINTEXT   # Install Postgres.   postgres:
    container_name: postgres
    image: debezium/postgres:12
    volumes:
      - ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql
    ports:
      - 5432:5432
    networks:
      - mynetwork
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=postgres   kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:0.2.1
    ports:
      - 8080:8080
    networks:
      - mynetwork
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092   #Deploy a Consumer.   consumer:
    build:
      context: .
    container_name: pledge-consumer
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/postgres
    ports:
      - 8101:8080
    networks:
      - mynetwork
    image: isber/ssm-pledgeservice:v1
    depends_on:
      - zookeeper
      - kafka
      - postgres

networks:   mynetwork:
    external: true

在我嘗試的應用程序中:

spring.kafka.bootstrap-servers=kafka:9092

當我通過 docker 但不是從 intellij 運行它時,它可以工作

使用intellij運行時我也嘗試過:

spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.bootstrap-servers=localhost:29092

我發現了問題,我使用的圖像:

 image: debezium/kafka:1.2

有問題,它沒有讀取我添加的環境的任何參數。 我升級到:

 image: debezium/kafka:1.4

一切正常。

暫無
暫無

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

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