通过工厂模式创建链接
static {BasePooledObjectFactory<MilvusServiceClient> factory = new BasePooledObjectFactory<MilvusServiceClient>() {@Overridepublic MilvusServiceClient create() throws Exception {return new MilvusServiceClient(ConnectParam.newBuilder().withHost(Consist.MILVUS_HOST).withPort(Consist.MILVUS_PORT).withAuthorization(Consist.MILVUS_USERNAME, Consist.MILVUS_PASSWORD) .build());}@Overridepublic PooledObject<MilvusServiceClient> wrap(MilvusServiceClient obj) {return new DefaultPooledObject<>(obj);}};
配置连接池
GenericObjectPoolConfig<MilvusServiceClient> config = new GenericObjectPoolConfig<>();config.setMaxTotal(Consist.MAX_TOTAL);config.setMaxIdle(Consist.MAX_IDLE);config.setMinIdle(Consist.MIN_IDLE);config.setMaxWaitMillis(Consist.MAX_WAIT_MILLIS);pool = new GenericObjectPool<>(factory, config);
从连接池中获取连接,并设置超时设置
public static MilvusServiceClient borrowClient(long timeout) throws Exception {return pool.borrowObject(timeout);}
归还连接
public static void returnClient(MilvusServiceClient client) {pool.returnObject(client);}
关闭链接池
public static void close() {pool.close();}