基于deepseek的智能语音客服【第四讲】封装milvus数据库连接池封装

通过工厂模式创建链接

java 复制代码
 static {
	        // 创建连接池工厂
	        BasePooledObjectFactory<MilvusServiceClient> factory = new BasePooledObjectFactory<MilvusServiceClient>() {
	            @Override
	            public 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()
	                );
	            }

	            @Override
	            public PooledObject<MilvusServiceClient> wrap(MilvusServiceClient obj) {
	                return new DefaultPooledObject<>(obj);
	            }
	        };

配置连接池

java 复制代码
  // 配置连接池
	        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);

从连接池中获取连接,并设置超时设置

java 复制代码
 public static MilvusServiceClient borrowClient(long timeout) throws Exception {
	    	
	        return pool.borrowObject(timeout);
	    }

归还连接

java 复制代码
  public static void returnClient(MilvusServiceClient client) {
	        pool.returnObject(client);
	    }

关闭链接池

java 复制代码
  public static void close() {
	        pool.close();
	    }
相关推荐
Jamence3 分钟前
多模态大语言模型arxiv论文略读(十六)
人工智能·语言模型·自然语言处理
武汉唯众智创21 分钟前
人工智能(机器人)通识实验室解决方案
人工智能·机器人·人工智能实验室·人工智能通识实验室·人工智能通识·机器人通识实验室·机器人实验室
程序猿John24 分钟前
Mysql读写分离(2)-中间件mycat和实践方案
数据库·mysql·中间件
巷95526 分钟前
深入理解卷积神经网络(CNN):从原理到实践
人工智能·神经网络·cnn
FreeBuf_27 分钟前
美国国土安全部终止资助,CVE漏洞数据库项目面临停摆危机
数据库·安全·web安全
知来者逆32 分钟前
计算机视觉——基于MediaPipe实现人体姿态估计与不良动作检测
人工智能·深度学习·计算机视觉·mediapipe·姿态估计·人体姿态
kinlon.liu1 小时前
使用Redis实现分布式限流
数据库·redis·分布式·缓存
满天星耶1 小时前
机器学习数据特征处理,鸢尾花案例,数字识别案例
图像处理·人工智能·机器学习·计算机视觉·数据分析·近邻算法
Jamence1 小时前
多模态大语言模型arxiv论文略读(二十三)
人工智能·语言模型·自然语言处理
艾醒(AiXing-w)1 小时前
探索大语言模型(LLM):定义、发展、构建与应用
人工智能·语言模型·自然语言处理