Scala幻影dsl主机

时间:2017-01-05 21:23:31

标签: scala cassandra phantom-dsl

取自

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之前,有没有办法测试与节点的连接?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有,ContactPoints只是利用基础ClusterBuilder的重点是为你处理“那种事情”。您还可以传递错误处理函数来处理一些问题,这样可以使事情变得更容易。

根据直觉,其余的节点在/etc/hosts中都有某种IP映射,但是你错过了Cassnode3.company.com的那个。请记住,他们都需要解析为IP地址,否则他们对ClusterBuilder无效。

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