【问题标题】:Can't connect to my kafka running on docker from spring boot application running via intellij无法从通过intellij运行的spring boot应用程序连接到我在docker上运行的kafka
【发布时间】:2022-01-04 16:48:43
【问题描述】:

我有一个包含 Kafka、zookeeper 和 spring boot 应用程序的 docker-compose 文件。 当我运行整个文件时,一切正常。 当我在没有 Spring Boot 应用程序的情况下运行它以通过 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

【问题讨论】:

    标签: spring-boot docker intellij-idea apache-kafka spring-kafka


    【解决方案1】:

    我发现问题了,我用的图:

    image: debezium/kafka:1.2
    

    有一个问题,它没有读取我添加的环境的任何参数。 我升级到:

    image: debezium/kafka:1.4
    

    一切正常。

    【讨论】:

      猜你喜欢
      • 2020-11-21
      • 1970-01-01
      • 2016-06-20
      • 2021-10-28
      • 2015-11-19
      • 2022-01-19
      • 2021-08-12
      • 2020-07-08
      • 2021-06-03
      相关资源
      最近更新 更多