java 调用solr服务器_使用solrj和LBHttpSolrClient访问单个solrcloud实例

在solrj中使用LBHttpSolrClient访问单个solrcloud实例是否比使用默认的solrj和zookeeper行为更不健壮?它可以正确地在单个solrcloud实例上进行负载 balancer 吗?

我可用的solrcloud实例有一个包含大约900万个文档的集合,分布在三个分片上,每个分片大约有300万个文档 . solrcloud中有三个节点(服务器),有3个分片,replicationFactor为2,maxShardsPerNode为2.对于这个solrcloud实例,还有3个zookeeper节点也在这三个服务器上运行 .

Note: 以下名为 solrUrls 的变量中列出的值应以"http://"为前缀,而不是"http_url_" . 我目前无法发布超过2个网址,所以我必须"encode" . 抱歉 .

这是我被告知使用的基本代码:

String zkUrls = "solrd1:2181,solrd2:2181,solrd3:2181";

String solrUrls = {"http_url_solrd1:8983", "http_url_solrd2:8983", "http_url_solrd3:8983"};

LBHttpSolrClient.Builder lbclient =

new BHttpSolrClient.Builder().withBaseSolrUrls(solrUrls);

CloudSolrClient solr = new CloudSolrClient.Builder()

.withLBHttpSolrClientBuilder(lbclient)

.withZkHost(zkUrls)

.build();

cloudServer.setDefaultCollection(defaultCollection);

这个 LBHttpSolrClient 客户端是否能够正确使用提供的 solrUrls ,因为该变量中列出的每个节点都只是一个solrcloud中的节点?此负载 balancer 客户端是否自动查询所有其他节点以确保整个集合的结果完整,而不仅仅是该节点上存在的分片?

如果使用 LBHttpSolrClient 客户端是访问单个solrcloud实例的正确方法(优于solrj和zookeeper),那么有没有更好的方法让zookeeper提供基本的solr url?我的印象是 LBHttpSolrClient 客户端早于整个solrcloud设置,并且是一种在多个独立的solr实例上进行负载均衡的方法 . 如果是这样的话,那么与solrj和zookeeper相比, LBHttpSolrClient 客户端的使用是否会过时?

References:

此链接似乎有一个合适的 Headers ,可以提供我所询问的相同问题的一些见解,但它没有答案 .

此链接讨论了solrj和zookeeper如何协同工作,但没有解决我的问题,如果 LBHttpSolrClient 客户端不太健壮,或者它是否能在单个solrcloud的单个实例上正常工作 .

如果solrj和zookeeper比使用 LBHttpSolrClient 客户端更适合,则不解决 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值