Hbase使用commons-pool简单对象池示例


使用apache的commons-pool完成了一个简单的HBASE的数据连接池,实现的功能为: 

继承GenericObjectPool


public class HbasePool extends GenericObjectPool<Connection>{


private static GenericObjectPoolConfig config = new GenericObjectPoolConfig();

private static HBaseContainer hBaseContainer;

static {
config.setMaxTotal(200);
config.setLifo(false);
config.setMaxIdle(200);
config.setMaxWaitMillis(5 * 1000);
config.setMinEvictableIdleTimeMillis(30 * 1000);
config.setSoftMinEvictableIdleTimeMillis(60 * 1000);
config.setNumTestsPerEvictionRun(200);
config.setTimeBetweenEvictionRunsMillis(60 * 1000);
config.setTestOnBorrow(true);
}

public void sethBaseContainer(HBaseContainer hBaseContainer) {
this.hBaseContainer = hBaseContainer;
}


public HbasePool() {
super(new HbasePoolFactory(),config);
}

public static class HbasePoolFactory implements PooledObjectFactory<Connection>{


@Override
public PooledObject<Connection> makeObject() throws Exception {
Connection connection = ConnectionFactory.createConnection(hBaseContainer.getConfiguration());
return new DefaultPooledObject<Connection>(connection);
}


@Override
public void destroyObject(PooledObject<Connection> p) throws Exception {
p.getObject().close();
}


@Override
public boolean validateObject(PooledObject<Connection> p) {
// TODO Auto-generated method stub
return true;
}


@Override
public void activateObject(PooledObject<Connection> p) throws Exception {
// TODO Auto-generated method stub

}


@Override
public void passivateObject(PooledObject<Connection> p)
throws Exception {
// TODO Auto-generated method stub

}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值