我对配置 Astyanax 连接池的方式感到困惑。我使用以下内容来配置我的池。
public final int CONNECTION_POOL_SIZE_PER_HOST = 1;
private String conecPoolName = "xxxx";
private String ipSeeds = "xxxxx";
private String clusterName = "xxxxx";
private String keyspaceName = "xxxxx";
private Keyspace keyspace;
private ConnectionPoolConfigurationImpl conPool;
public DMPAstyanaxConfPool() throws DMPException {
conPool = new ConnectionPoolConfigurationImpl(conecPoolName).setMaxConnsPerHost(
CONNECTION_POOL_SIZE_PER_HOST).setSeeds(ipSeeds);
AstyanaxContext<Keyspace> context = new AstyanaxContext.Builder().forCluster(clusterName)
.forKeyspace(keyspaceName)
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl().setDiscoveryType(NodeDiscoveryType.NONE))
.withConnectionPoolConfiguration(conPool)
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());
context.start();
keyspace = context.getEntity();
}
大多数属性都很容易理解,但我不确定 setMaxConnsPerHost 到底设置了什么。在我的机器上,我使用了一个创建多个 cassandra 连接的多线程应用程序,即使 setMaxConnsPerHost 设置为 1,它也可以正常工作。另外,我知道 cassandra 服务器中有一个配置允许我们设置最大连接数和最大值每个主机的连接数。
服务器配置和这个配置相关吗?否则,这个设置究竟是什么意思?