gpt4 book ai didi

java - Astyanax Cassandra 客户端中的连接池类型

转载 作者:行者123 更新时间:2023-11-30 09:22:43 26 4
gpt4 key购买 nike

过去几周我们一直在尝试评估不同的 Cassandra 客户端,所以现在看来​​我们将继续使用 Netflix/Ast​​yanax 客户端

我们正在尝试优化 Cassandra 数据库,主要是为了读取性能。目前,我正在像这样创建 Astyanax 连接-

/**
* Creating Cassandra connection using Astyanax client
*
*/
private CassandraAstyanaxConnection() {

context = new AstyanaxContext.Builder()
.forCluster(ModelConstants.CLUSTER)
.forKeyspace(ModelConstants.KEYSPACE)
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)
)
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool")
.setPort(9160)
.setMaxConnsPerHost(40)
.setSeeds("node1:9160,node2:9160,node3:9160,node4:9160")
)
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setCqlVersion("3.0.0")
.setTargetCassandraVersion("1.2"))
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());

context.start();
keyspace = context.getEntity();

emp_cf = ColumnFamily.newColumnFamily(
ModelConstants.COLUMN_FAMILY,
StringSerializer.get(),
StringSerializer.get());
}

问题陈述:-

所以默认情况下,我相信Astyanax 客户端 将使用ConnectionPoolType as ROUND_ROBIN

现在我试图从读取性能的角度了解以下选项中哪个更好?

TOKEN_AWARE 或 ROUND_ROBIN 或 BAG

这三者有什么区别?我们如何决定我们应该使用以上三个中的一个?

关于我们集群的一些背景。我们将拥有具有 24 个节点 的单个 cross colo 集群。意思是 12 个节点在 SLC colo12 个节点在 PHX colo

我们将使用 NetworkTopologyStrategy复制因子为 4,这意味着 每个 colo 中有 2 个。我们将使用 LeveledCompactionStrategy

对我上述问题的任何解释都会有很大帮助。会有很多人在生产环境中使用 Astyanax 客户端。任何反馈都会有很大帮助。

感谢您的帮助。

更新:-

仍在寻找可以通过示例解释这三者之间的主要区别的答案,以便我更好地理解。我知道这些一般意味着什么,但无法从示例的角度理解它将如何运作。

最佳答案

ROUND_ROBIN

在这种类型的 ConnectionPoolType 中,您的连接将根据主机集以循环类型实例化。

TOKEN_RANGE

它有点类似于 ROUND_ROBIN 类型,设置一个基本的 token 感知池,它将轮询 token 范围内的所有主机

不太了解这种类型,但我猜它会是这样的,您的连接将从主机的 BAG 中随机实例化,与 token 范围或循环模式无关。

关于java - Astyanax Cassandra 客户端中的连接池类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com