无法将 Spring 应用程序连接到 debezium kafka
Posted
技术标签:
【中文标题】无法将 Spring 应用程序连接到 debezium kafka【英文标题】:Can't connect spring application to debezium kafka 【发布时间】:2020-01-21 14:07:33 【问题描述】:我正在尝试将我的 spring 应用程序连接到 debezium/kafka:0.10 但没有成功。最初该应用程序使用 wurstmeister/kafka 图像,但现在我正在引入 debezium 的新功能,并且希望两者都只使用一个 kafka 图像。我无法将两个应用程序连接到 debezium kafka 或 debezium 到 wurstmeister kafka。有人知道两者都可以只使用一张图片吗?欢迎任何想法:)
问题是应用程序无法将主题创建到 debezium 容器中。而且 debezium 也无法与 wurstmeister kafka 图像一起使用。
错误 18864 --- [main] o.springframework.kafka.core.KafkaAdmin:无法配置主题 org.springframework.kafka.KafkaException:等待获取现有主题超时;嵌套异常是 java.util.concurrent.TimeoutException 在 org.springframework.kafka.core.KafkaAdmin.lambda$checkPartitions$2(KafkaAdmin.java:235) ~[spring-kafka-2.2.3.RELEASE.jar:2.2.3.RELEASE] 在 java.base/java.util.HashMap.forEach(HashMap.java:1336) ~[na:na] 服务: 动物园管理员: 图片:debezium/动物园管理员:0.10 端口: - 2181:2181 - 2888:2888 - 3888:3888 卡夫卡: 图片:debezium/kafka:0.10 端口: - 9092:9092 链接: - 动物园管理员 环境: - ZOOKEEPER_CONNECT=动物园管理员:2181 - ADVERTISED_HOST_NAME=10.0.75.1 连接: 图片:debezium/连接:0.10 端口: - 8083:8083 链接: - 卡夫卡 - mysql 环境: - BOOTSTRAP_SERVERS=kafka:9092 - GROUP_ID=1 - CONFIG_STORAGE_TOPIC=my_connect_configs - OFFSET_STORAGE_TOPIC=my_connect_offsets - STATUS_STORAGE_TOPIC=my_connect_statuses【问题讨论】:
Kafka Cannot Configure Topics on Application Startup, but Later Can Communicate的可能重复 完全不同 那么我是否可以建议您提供有关您的环境、代码和配置的更多详细信息?您已经尝试了两个具有相同结果的不同图像。如果没有更多细节,就很难诊断出根本问题。 听起来您配置错误ADVERTISED_HOST_NAME
属性。 Debezium 适用于任何 Kafka 容器
ADVERTISED_HOST_NAME -> 172.0.0.1:9092 如果有人有一个示例配置,其中 debezium 使用不同于 debezium/kafka 的 kafka,欢迎
【参考方案1】:
除了ADVERTISED_HOST_NAME,您还需要将ADVERTISED_LISTENERS添加到容器环境中。
ADVERTISED_LISTENERS - 代理将在 zookeeper 中注册此值,当外部世界想要连接到您的 Kafka 集群时,他们可以通过您在 ADVERTISED_LISTENERS 属性中提供的网络进行连接。
示例:
environment:
- ADVERTISED_HOST_NAME=<Host IP>
- ADVERTISED_LISTENERS=PLAINTEXT://<Host IP>:9092
【讨论】:
以上是关于无法将 Spring 应用程序连接到 debezium kafka的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 docker 将 PostgreSQL 数据库连接到 Spring
无法将 Spring Boot 应用程序连接到 IBM Informix 数据库
无法将 dockerized spring boot 应用程序连接到 dockerized postgresql
Spring Security:无法将我的 UserDetailService 自动连接到 AuthenticationProvider 以进行 BCrypt 集成