首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr云:节点间碎片的分布

Solr云:节点间碎片的分布
EN

Stack Overflow用户
提问于 2017-10-16 15:08:12
回答 1查看 923关注 0票数 1

我目前正在使用SolrCloud6.1,下面的行为也可以观察到,直到7.0。

我正在尝试创建一个Solr集合,其中包含5个碎片,复制因子为2,我有5个物理服务器。通常情况下,这将在可用的服务器中平均分配所有10个副本。

但是,当使用-h (主机名) param启动Solr以为每个Solr实例提供一个单独的但不变的主机名时,这将不再起作用。然后,该发行版如下所示:

代码语言:javascript
复制
solr-0:
wikipedia_shard1_replica1  wikipedia_shard2_replica1  wikipedia_shard3_replica2  wikipedia_shard4_replica1  wikipedia_shard4_replica2

solr-1:

solr-2:
wikipedia_shard3_replica1  wikipedia_shard5_replica1  wikipedia_shard5_replica2

solr-3:
wikipedia_shard1_replica2

solr-4:
wikipedia_shard2_replica2

我试着使用基于规则的复制布局,但是规则似乎被忽略了。

我需要使用主机名,因为Solr运行在Kubernetes集群中,其中IP地址更改频繁,在容器重新启动后Solr将找不到它的核心。我最初怀疑较新的Solr版本是造成这种情况的原因,但我将其缩小到主机名问题上。

有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-06 15:29:19

这个解决方案实际上很简单(但并没有真正记录在案):

在OpenShift/Kubernetes中创建Service时,所有匹配的Pods都会得到负载均衡器的支持。当为所有Solr实例分配唯一主机名时,这些主机名都将解析为一个IP地址(负载均衡器的IP地址)。

Solr在某种程度上无法处理这个问题,并且无法均匀地分配它的碎片。

解决方案是使用来自Kubernetes的无头服务。无头服务没有负载均衡器支持,因此每个主机名都解析为唯一的IP地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46773456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档