Приложение Spring Boot отказывается подключаться к брокерам Kafka - PullRequest
0 голосов
/ 29 апреля 2020

Итак, я только недавно начал использовать Kafka и по какой-то странной причине, хотя контейнеры серверов kafka и zookeeper работают так, как это предусмотрено в документации и с помощью команды docker ps. Я продолжаю получать эту спецификацию c ошибка

enter image description here

Я пытался решить эту проблему в течение недели с различными конфигами, но все еще продолжает выдавать мне бесконечное количество ошибок * * * * * * * * * * * * * * * * * Я следовал обоим этим урокам: https://rmoff.net/2018/08/02/kafka-listeners-explained/ и https://www.youtube.com/watch?v=-0vrqMMGQbc

docker -compose up прекрасно работает, и брокер запускается, но когда я запускаю команду mvn spring-boot: run, она терпит неудачу.

Я также пытался изменить адрес на своей локальной машине, но еще ничего. Был бы признателен за помощь

Это мой docker -compose.yml

version: '3.2'
services:
  zookeeper:
    container_name: zookeeper
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
  kafka:
    container_name: kafka
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: INTERNAL://:19092,EXTERNAL://:9092
      KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:19092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    depends_on:
      - zookeeper
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

И это мое приложение .yml

# Server
server:
  port: 8090

# Spring Kafka & H2
spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
  kafka:
    bootstrap-servers: localhost:9092
  h2:
    console:
      enabled: true
      path: /h2
  datasource:
    url: jdbc:h2:mem:api;MODE=MySQL
    username: api
    password: root
    driverClassName: org.h2.Driver

result:
  topic.name: result

# Keycloak
keycloak:
  auth-server-url: http://localhost:8080/auth
  realm: demo
  resource: demo-api
  enabled: false
  public-client: false
  bearer-only : true
  principal-attribute: preferred_username
  allow-any-hostname: true

#  credentials:
#    secret:

# Logging
logging:
  level:
    org.springframework.web: DEBUG
    org.hibernate: DEBUG
    org: INFO
    com.API.demo.Controllers: DEBUG
  config: src/main/resources/logback-spring.xml
  file:
    path: logs/log

1 Ответ

1 голос
/ 29 апреля 2020

Рекламируемый слушатель не определен правильно

Вместо

  KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:19092

вам необходимо

  KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:19092,EXTERNAL://localhost:9092

Также обратите внимание, что если вы хотите, чтобы брокер создавал темы автоматически вы хотите установить

  KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...