Kafka AdminClient似乎启动了两次

问题描述 投票:0回答:1

我希望我能解释这个!

我正在启动一个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 ...

java spring-boot apache-kafka
1个回答
0
投票

所以!这是一只伟大的橡皮鸭。

© www.soinside.com 2019 - 2024. All rights reserved.