【问题标题】:Scala phantom dsl hostsScala 幻象 dsl 主机
【发布时间】:2017-05-20 13:55:30
【问题描述】:

取自

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 中删除此节点,一切正常。

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

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

谢谢!

【问题讨论】:

    标签: scala cassandra phantom-dsl


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-04-23
      • 2017-08-20
      • 2017-08-06
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2017-12-23
      相关资源
      最近更新 更多