Solr和Zookeeper-3个Z节点我应将哪个节点用作API进行请求

问题描述

我一直在研究他们使用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的一部分。