Микросервисы в докере не видят кафку в докере

У меня есть docker-compose.yml в котором описаны сервисы которые общаются через кафку и сама кафка Вот driver-service

driver_service:
    image: driver-service
    container_name: driver-service
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://mysql_db:3306/drivers
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=root
      - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://eureka-service:8090/eureka
      - SPRING_KAFKA_BOOTSTRAP_SERVERS=kafka:29092
      - KAFKA_BOOTSTRAP_SERVERS=kafka:29092
    ports:
      - '8084:8084'
    networks:
      - cab_aggregator
    depends_on:
      - eureka-service
      - mysql_db
      - kafka

Вот ride-service

  ride_service:
    image: ride-service
    container_name: ride-service
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://mysql_db:3306/rides
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=root
      - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://eureka-service:8090/eureka
      - SPRING_KAFKA_BOOTSTRAP_SERVERS=kafka:29092
      - KAFKA_BOOTSTRAP_SERVERS=kafka:29092
    ports:
      - '8082:8082'
    networks:
      - cab_aggregator
    depends_on:
      - eureka-service
      - mysql_db
      - kafka

Вот кафка с zookeper

  zookeeper:
    image: zookeeper:3.7.0
    container_name: zookeeper
    networks:
      - cab_aggregator
    restart: "no"
    ports:
      - "2181:2181"

  kafka:
    image: obsidiandynamics/kafka
    container_name: kafka
    restart: "no"
    networks:
      - cab_aggregator
    ports:
      - "9092:9092"
    environment:
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: DOCKER_INTERNAL:PLAINTEXT,DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_LISTENERS: DOCKER_INTERNAL://:29092,DOCKER_EXTERNAL://:9092
      KAFKA_ADVERTISED_LISTENERS: DOCKER_INTERNAL://kafka:29092,DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
      KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER_INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_BROKER_ID: 1
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    depends_on:
      - zookeeper

  kafdrop:
      image: obsidiandynamics/kafdrop
      container_name: kafdrop
      restart: "no"
      networks:
        - cab_aggregator
      ports:
        - "9000:9000"
      environment:
        KAFKA_BROKERCONNECT: "kafka:29092"
      depends_on:
        - "kafka"

И при старте в логах сервисов выдается ошибка

rg.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater [WARN ] 19:10:19 - [Consumer clientId=consumer-ride-creation-group-1, groupId=ride-creation-group] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
2024-02-17T19:10:20.622588304Z org.apache.kafka.clients.NetworkClient [INFO ] 19:10:20 - [Consumer clientId=consumer-ride-creation-group-1, groupId=ride-creation-group] Node -1 disconnected.
2024-02-17T19:10:20.622669266Z org.apache.kafka.clients.NetworkClient [WARN ] 19:10:20 - [Consumer clientId=consumer-ride-creation-group-1, groupId=ride-creation-group] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
2024-02-17T19:10:20.622859991Z org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater [WARN ] 19:10:20 - [Consumer clientId=consumer-ride-creation-group-1, groupId=ride-creation-group] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected

Так же вот настройки самого сервиса джарник которого запускается в докер компосе

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/rides
    username: ${DB_USERNAME:root}
    password: ${DB_PASSWORD:root}
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQLDialect
    show-sql: true
    hibernate:
      ddl-auto: none
  liquibase:
    change-log: classpath:/db/changelog/db.changelog-master.xml
  application:
    name: ride
  kafka:
    consumer:
      group-id: driver-creation-group
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
      bootstrap-servers: localhost:9092
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
      bootstrap-servers: localhost:9092
topic:
  name:
    ride: ride
    driver: driver
    available: available
service:
    passenger:
      name: passenger
      path: /api/v1/passengers
    driver:
      name: driver
      path: /api/v1/drivers
    payment:
      name: payment
      path: /api/v1/payment
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8090/eureka

logging:
  pattern:
    console: "%C{1.} [%-5level] %d{HH:mm:ss} - %msg%n"
server:
  port: 8082


Как мне кажется проблема с портами Причем если без докера запустить сервис то кафка доступна сервису так как там порты прокидываются


Ответы (0 шт):