Kafka连接管理

private static Cache clientCache = CacheBuilder.newBuilder()
        .maximumSize(80).expireAfterAccess(10, TimeUnit.MINUTES)
        .removalListener(new RemovalListener() {

    @Override
    public void onRemoval(RemovalNotification arg0) {
        KafkaClient client = arg0.getValue();
        client.close();
        LOG.info("{} close kafka connection[{}];reason:{}", Thread.currentThread().getId(), arg0.getKey(), arg0.getCause());
    }
}).build();

采用Guava缓存,若kafka链接对象在缓存中10分钟内没有读写,则直接过期;可以不用采用连接池的方式去实现链接管理;

你可能感兴趣的:(Kafka连接管理)