我的scala应用程序需要通过zookeeper与solr云进行交互。我需要将solr配置文件(conf文件夹)上传到zookeeper。它使用以下shell命令完成:
cloud-scripts/zkcli.sh -cmd upconfig -zkhost zkHostAddress:2181 -d solr/collection/conf/ -n collection
我需要从我的scala应用程序本身完成此配置上传,而不是使用此shell命令。我怎样才能做到这一点?
答案 0 :(得分:0)
Netflix编写了一个名为Curator的好的Zookeeper库(现在是一个Apache项目),它在Scala中工作得很好,例如下面的代码建立了与ZooKeeper的连接
private def getConnection(connection : String): Option[CuratorFramework] = {
val retryPolicy = new ExponentialBackoffRetry(100,3)
val newConn = CuratorFrameworkFactory.builder().
connectString(connection).
retryPolicy(retryPolicy).connectionTimeoutMs(1000).
build
try {
newConn.start()
newConn.checkExists.forPath(SOME_PATH)
Some(newConn)
} catch {
case e:Exception => {
error(e)
None
}
}
}