问题描述
我一直在研究他们使用SolrCloud的系统,这需要一个Zookeeper合奏来提供帮助
”管理整体结构,以便同时建立索引和搜索 请求可以正确路由”
我有3个Z节点。我应将哪个节点用作搜索请求的API。如果失败了怎么办? Zookeeper如何将我的代码中的IP更改为另一个Z节点?
我知道它不可能那样工作!但我想弄清楚。
解决方法
如果您将solr cloud与zookeeper集成一起使用,并使用Java进行连接。
您可以使用Java代码获得以下连接。
CloudSolrClient solrClient;
@SuppressWarnings("deprecation")
public CloudSolrClient createConnection(){
//You need to replace SERVERNAME with the server on which the zookeeper is running
String zkHostString = "SERVERNAME:PORT,SERVERNAME:PORT,SERVERNAME:PORT";
if(solrClient == null){
solrClient = new CloudSolrClient.Builder().withZkHost(zkHostString).build();
}
return solrClient;
}
在这里,您需要传递所有正在运行的用于管理solr服务器的Zookeeper节点。您还可以对应用程序使用springboot,在其中可以将zk-host配置为application.properties的一部分。