0

摘自

http://outworkers.com/blog/post/a-series-on-phantom-part-1-getting-started-with-phantom

我正在尝试连接到具有多个节点的 Cassandra 集群,如下所示:

object Defaults {

  val hosts = Seq("Cassnode1.company.com", "Cassnode2.company.com", "Cassnode3.company.com")

  val Connector = ContactPoints(hosts).keySpace("whatever")

}

如果由于某种原因,其中一个节点不存在,我会得到:

Caused by: java.lang.IllegalArgumentException: Cassnode3.company.com: unknown error

如果我从主机 Seq 中删除此节点,一切正常。

我正在使用幻像 dsl 版本“1.28.12”,我想知道这是否是预期的行为,因为我假设只要列出的主机之一不存在/不可用,应用程序就会使用剩余的主机。

在将列表传递给 ContactPoints 之前,有没有办法测试与节点的连接性?

谢谢!

4

1 回答 1

1

没有,ContactPoints仅仅利用底层证券的全部意义ClusterBuilder就是为你处理“那种事情”。您还可以传入一个错误处理函数来处理一些问题,这样可能会使事情变得更容易。

凭直觉,其余节点在您的中有某种 IP 映射/etc/hosts,但您缺少一个Cassnode3.company.com。请记住,它们都需要解析为 IP 地址,否则它们对ClusterBuilder.

我强烈建议升级到2.1.3幻影版本,但在这种特殊情况下,罪魁祸首几乎完全是您的本地开发设置,它只需要第三个 URL 的 IP 映射。

于 2017-02-21T11:44:04.977 回答