【问题标题】:Cassandra big cluster configure the client connectionCassandra大集群配置客户端连接
【发布时间】:2014-08-01 05:37:51
【问题描述】:

我一直在寻找如何配置客户端以连接到 Cassandra 集群。

独立于 Pelops、Hector 等客户端,连接到多节点 Cassandra 集群的最佳方式是什么?

发送字符串 IP 值可以正常工作,但是将来越来越多的集群节点呢?是否在客户端同步维护所有 IP 集群节点?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    不知道这是否回答了你所有的问题,但不断增长的集群和你对客户端 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 个,但这不会改变这样一个事实,即如果添加一个节点,您不需要做任何事情在客户端

    问候, 卡罗

    【讨论】:

    • Carlo,使用一个数据中心的种子-IP-很好。一个、两个等数据中心呢? DataStax 规则是一个数据中心的两个种子,因此“我可以/必须/应该在每个数据中心使用种子 IP”。谢谢
    • 多个 DC 不会发生任何变化。如果 DC2:nodeX 连接到 DC1:anyseed 并且 DC1:nodeX 连接到 DC2:anyseed 将没有问题(只需在其他机器之前启动所有种子)。从客户端 pov,您可以仅连接到一个集群(并接收有关其他集群的信息)或每个集群的种子(最后一个更好,因为如果整个集群出现故障,您仍然可以连接到您的数据库)- 会发生什么变化在具有多个 DC 的客户端中,最重要的是您的操作的一致性级别。 hth,卡洛
    【解决方案2】:

    您可以更轻松地让客户端跟踪每个节点的状态。智能客户端将通过 gossipinfo 跟踪端点状态,新节点会在出现在集群中时传递。

    【讨论】:

      猜你喜欢
      • 2013-05-21
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 2012-06-29
      • 1970-01-01
      • 2015-03-13
      相关资源
      最近更新 更多