4

我有一个 4 节点 Cassandra 集群。单个节点充当 Astyanax 连接池的种子节点,在构建 AstyanaxContext 时通过 setSeeds(...) 方法提供。我还插入了我自己的连接池监控实现。这向我显示了添加的一个主机(种子节点),但它没有向我显示其他三个节点。当关闭 Astyanax 的种子节点时,例如通过 nodetool 禁用此特定节点的节俭,任何对 Cassandra 的 Astyanax 请求都会失败。我认为连接池通过种子节点了解集群的外观,并且不需要种子节点一直启动并运行?

我使用 RING_DESCRIBE 作为 NodeDiscoveryType 和 TOKEN_AWARE 作为 ConnectionPoolType。

4

1 回答 1

1

当您使用 Astyanax 发出查询时,提供的联系点始终需要运行。当您开始写入多个副本并且驱动程序需要锻炼在哪里发送额外的复制数据时,学习就会开始(因为如您所知,如果您有超过 1 个节点,数据会被写入多个分区)

我到底是什么意思?

127.0.0.1 <--- seed
127.0.0.2
127.0.0.3
127.0.0.4

// code where you initialize Astyanax
...
.setSeeds("127.0.0.1") // this node always has to be available
...
于 2013-11-18T18:07:00.727 回答