All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hydraql.thrift.HBaseThriftPoolConfig Maven / Gradle / Ivy

/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.hydraql.thrift;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

/**
 * 

* HBase thrift 连接池的默认配置 *

* @author leojie 2020/12/27 2:51 下午 */ public class HBaseThriftPoolConfig extends GenericObjectPoolConfig { public HBaseThriftPoolConfig() { // 连接池中的最大连接数,默认8,根据服务端可以容纳的最大连接数和当前并发数进行合理设置 setMaxTotal(1); // 连接池中确保的最少空闲连接数 setMinIdle(1); // 连接池中允许的最大空闲连接数 setMaxIdle(1); // 连接池用尽后,调用者是否等待,为true时,maxWaitMillis才生效 setBlockWhenExhausted(true); // 连接池用尽后,调用者的最大等待时间,毫秒,默认-1,表示永不超时 setMaxWaitMillis(6000); // 每次从资源池中拿/归还连接是否校验连接的有效性,默认false,避免每次使用或归还连接与服务端进行一次连接开销 setTestOnBorrow(false); setTestOnReturn(false); // 开启JMX监控 setJmxEnabled(true); // 是否开启空闲连接检测,默认false,建议true setTestWhileIdle(true); // 空闲连接的检测周期,毫秒,默认-1不进行检测,此处周期设置为3分钟 setTimeBetweenEvictionRunsMillis(60 * 1000); // 空闲连接检测时,每次检测资源的个数,设置为-1,就是对所有连接进行检测 setNumTestsPerEvictionRun(-1); // 连接池中连接的最小空闲时间,默认180000毫秒,30分钟,此处设置为6分钟 setMinEvictableIdleTimeMillis(60 * 1000); // 硬闲置 3秒没有占用设置为闲置, 检测线程直接剔除闲置,保持的最小空闲数,会被剔除且重新生成 硬闲置设置之后,软闲置设置无效 // setMinEvictableIdleTimeMillis(3000); // 软闲置 3秒没有占用设置为闲置, 当空闲连接>最小空闲数,才执行剔除闲置连接,否则维持最小空闲数,即使闲置了也不会剔除 // setSoftMinEvictableIdleTimeMillis(3000); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy