我一直在寻找如何配置客户端以连接到 Cassandra 集群。
独立于 Pelops、Hector 等客户端,连接到多节点 Cassandra 集群的最佳方式是什么?
发送字符串 IP 值可以正常工作,但是将来不断增长的集群节点呢?是否在客户端同步维护所有 IP 集群节点?
我一直在寻找如何配置客户端以连接到 Cassandra 集群。
独立于 Pelops、Hector 等客户端,连接到多节点 Cassandra 集群的最佳方式是什么?
发送字符串 IP 值可以正常工作,但是将来不断增长的集群节点呢?是否在客户端同步维护所有 IP 集群节点?
不知道这是否回答了您所有的问题,但不断增长的集群和您对客户端 ip 的了解并不相关。
我有一个 5 节点集群,但客户端只知道 2 个 IP 地址:种子。由于集群的每台机器都知道种子(每台 cassandra.yaml 都包含种子 IP 地址),因此如果要添加新机器,有关新机器的信息将“免费”在客户端提供。
想象一个具有以下 ips 的 5 节点集群
192.168.1.1
192.168.1.2(种子)
192.168.1.3
192.168.1.4(种子)
192.168.1.5
例如:节点 .5 启动——它将联系种子(节点 2 和 4)并接收有关整个集群的信息。如果您添加一个新的 192.168.1.6,其行为将与 .5 完全相同,并将指向种子以了解集群情况。在客户端,您无需更改任何内容:您只需知道现在您有 6 个端点而不是 5 个。
ps:您不必连接到种子,您可以连接到任何节点,因为在联系了种子之后,每个节点都知道整个集群拓扑
pps:您可以选择在“客户端已知主机”中放置多少个节点,您也可以放置所有 5 个,但这不会改变这样一个事实,即如果添加一个节点,您不需要在客户端上做任何事情边
问候, 卡罗
您将更容易让客户端跟踪每个节点的状态。智能客户端将通过 gossipinfo 跟踪端点状态,当它们出现在集群中时,它会传递新节点。