Memcached的Java客户端API之SockIOPool
SockIOPool
public static SockIOPool getInstance()
获得连接池的单例方法。这个方法有一个重载方法getInstance( String poolName ),每个poolName只构造一个SockIOPool实例。缺省构造的poolName是default。 如果在客户端配置多个memcached服务,一定要显式声明poolName。
public void setServers(String[] servers)
设置连接池可用的cache服务器列表,server的构成形式是IP:PORT(如:127.0.0.1:1111)。
public void setWeights(Integer[] weights)
设置连接池可用cache服务器的权重,和server数组的位置一一对应。其实现方法是通过根据每个权重在连接池的bucket中放置同样数目的server,因此所有权重的最大公约数应该是1,不然会引起bucket资源的浪费。
public void setInitConn(int initConn)
设置开始时每个cache服务器的可用连接数。
public void setMinConn(int minConn)
设置每个服务器最少可用连接数。
public void setMaxConn(int maxConn)
设置每个服务器最大可用连接数。
public void setMaxIdle(long maxIdle)
设置可用连接池的最长等待时间。
public void setMaintSleep(long maintSleep)
设置连接池维护线程的睡眠时间 ,设置为0,维护线程不启动。维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。
public void setNagle(boolean nagle)
设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)。
public void setSocketTO(int socketTO)
设置socket的读取等待超时值。
public void setSocketConnectTO(int socketConnectTO)
设置socket的连接等待超时值。
public void setAliveCheck(boolean aliveCheck)
设置连接心跳监测开关。 设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HighAvailability(高可用性)要求比较高的场合设为TRUE,默认状态是false。
public void setFailback(boolean failback)
设置连接失败恢复开关 ,设置为TRUE,当宕机的服务器启动或中断的网络连接后,这个socket连接还可继续使用,否则将不再使用,默认状态是true,建议保持默认。
public void setFailover(boolean failover)
设置容错开关,设置为TRUE,当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认。
public void setHashingAlg(int alg)
- alg=0 使用String.hashCode()获得hash code,该方法依赖JDK,可能和其他客户端不兼容,建议不使用
- alg=1 使用original 兼容hash算法,兼容其他客户端
- alg=2 使用CRC32兼容hash算法,兼容其他客户端,性能优于original算法
- alg=3 使用MD5 hash算法
设置hash算法,采用前三种hash算法的时候,查找cache服务器使用余数方法。采用最后一种hash算法查找cache服务时使用一致性hash方法。
public void initialize()
设置完pool参数后最后调用该方法,启动pool。