繁体   English   中英

多线程中的 Kafka Admin Client

[英]Kafka Admin Client in Multi Threading

我有带有以下代码的Kafka客户端,

private AdminClient getKafkaClient() {
        final Map<String, Object> configs = new ConcurrentHashMap<>();
        configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "server-ip");
        return AdminClient.create(configs);
    }

此方法由多个线程调用,并创建许多管理客户端。 所以我想保留一个实例并利用它。

我已经阅读了一篇关于使用 Holder 类的单例文章,网址如下,

关于静态持有人单例模式

看起来不错,当我尝试实现问题设置配置但无法创建实例时。 任何人都可以在我的问题中建议我最好的主意吗?

谢谢!

下面好看吗?? 我让它工作。

public class KafkaAdminManager {

    private ConnectionConfig connectionConfig;
    private static final Map<String, Object> configs =  new HashMap<>();

    public KafkaAdminManager(ConnectionConfig connectionConfig) {
        configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, connectionConfig.getBootstrapServers());
        this.connectionConfig = connectionConfig;
    }

    private static class InstanceHolder {
        public static AdminClient instance = AdminClient.create(configs);
    }

    private KafkaAdminManager(){}

    public static AdminClient getInstance() {
        return InstanceHolder.instance;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM