Phantom Scala Cassandra连接器:如何指定节点的端口,用户名和密码

时间:2015-05-08 15:31:41

标签: scala cassandra phantom-dsl

我试图使用websudos phantom

有谁知道如何为Cassandra指定连接参数,例如用户名和密码?

由于

1 个答案:

答案 0 :(得分:6)

Phantom尚未在phantom-connectors框架中支持Kerberos身份验证,但它在未来几周的路线图中。

但是,使用连接器时,可以覆盖createCluster方法并以任何方式连接到群集。

object CustomCassandraManger extends DefaultCasandraManager {

  override protected[this] def createCluster: Cluster = {
    val inets = hosts.toSeq.map(_.getAddress)

    Cluster.builder()
     .addContactPoints(inets: _*)
     ...
     .withUsernameAndPassword(..)
  }
}

我可能没有使用正确的方法,但这就是你如何控制群集的创建方式。然后,您只需要将此管理器注入连接器:

trait MyConnector extends SimpleCassandraConnector {
  override val manager = CustomCassandraMananger
}

然后将此连接器混合到所有表中,就像使用幻像时一样。

幻影的最新版本

在更新版本的幻像中,API基于ContactPoints,您可以使用以下DSL指定所需的ClusterBuilder个选项。

import com.datastax.driver.core.PlainTextAuthProvider

lazy val local = ContactPoint.local.withClusterBuilder(
  _.withAuthProvider(new PlainTextAuthProvider("user", "pass"))
).keySpace("phantom")