【发布时间】:2020-08-13 16:21:20
【问题描述】:
所以我最近才开始使用 Kafka,但出于某种奇怪的原因,尽管 kafka 和 zookeeper 服务器容器按照文档中的预期运行并使用命令 docker ps。我不断收到此特定错误
我已经尝试使用不同的配置解决这个问题大约一个星期了,但它仍然让我不断循环错误。
我遵循了这两个教程: 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
这是我的 application.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
【问题讨论】:
-
不知道这是否会导致问题,但在您撰写的 kafka 服务中,我会将环境变量放在引号中。值中有很多字符可能会吓坏它。
-
您正在使用来自 Confluent docker 镜像 (
cp-kafka) 的环境变量和不同的镜像。您打算使用哪一个?您的 Spring 代码是在 Docker 主机本地运行,还是在容器中运行? -
J.Scott,我之前只尝试过 3 个环境变量,就像 youtube 示例一样,但遗憾的是它仍然有同样的错误。还有@RobinMoffatt,我正在使用wurstmeister,我看到一些gitrepos使用相同的图像和环境变量,在我克隆它们后它们运行良好,是的,它在本地运行,而不是在容器中。
标签: spring-boot docker apache-kafka docker-compose apache-zookeeper