我希望我能解释这个!
我正在启动一个dockerized java spring boot应用程序,它将连接到单个dockerized Kafka实例。
[为此,我在docker-compose文件中设置了一个链接,该链接将允许应用程序连接到端口kafka-cluster
上名为9092
的kafka docker。
同时启动两个容器时,我在Java应用程序中收到一条错误消息,提示它无法连接到KafkaAdmin:
[AdminClient clientId=adminclient-2] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
但是它正在尝试连接到localhost / 127.0.0.1。
进一步在日志中,我可以看到它两次启动了与KafkaAdmin的连接:首先:
2020-03-25 13:53:15.515 INFO 7 --- [ main] o.a.k.clients.admin.AdminClientConfig : AdminClientConfig values:
bootstrap.servers = [kafka-cluster:9092]
client.dns.lookup = default
client.id =
connections.max.idle.ms = 300000
<more properties>
然后再直接访问(但是在本地主机上:)>
2020-03-25 13:53:15.780 INFO 7 --- [ main] o.a.k.clients.admin.AdminClientConfig : AdminClientConfig values: bootstrap.servers = [localhost:9092] client.dns.lookup = default client.id = connections.max.idle.ms = 300000 <more properties>
这是配置:
@Bean public KafkaAdmin kafkaAdmin() { Map<String, Object> configs = new HashMap<>(); configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); return new KafkaAdmin(configs); } @Bean public NewTopic sysCcukCdcAssetsCreate() { return new NewTopic(newPanelTopic, 1, (short) 1); } @Bean public NewTopic sysCcukCdcAssetsUpdate() { return new NewTopic(updatedPanelTopic, 1, (short) 1); }
其中
bootstrapServers
=kafka-cluster:9092
我不明白为什么KafkaAdmin似乎有2套配置,但似乎导致了错误。
非常感谢任何指导或建议:)
我希望我能解释这个!我正在启动一个dockerized java spring boot应用程序,该应用程序将连接到单个dockerized Kafka实例。为此,我在docker-compose ...
所以!这是一只伟大的橡皮鸭。