在一台服务器上运行多个SolrCloud节点是否有意义?

时间:2016-05-31 12:56:01

标签: solr solrcloud

我只能使用一台服务器来运行我的应用程序和我的Solr服务器。我想知道在这台机器上部署SolrCloud和zookeeper的几个节点(例如使用VM或docker)是否有效,性能和可用性是否合理。由于我将容易受到硬件故障的影响,因此我主要关注的是防止软件故障和性能。

因此,添加一些节点(3个可能?)会有助于使Solr服务器具有更高的可用性或更好的性能吗?或者它会产生相反的效果吗?

1 个答案:

答案 0 :(得分:3)

在一块硬件上使用多个JVM通常不会有太大帮助。

正如您所提到的,在一台计算机上使用多个JVM并不会降低您的硬件故障漏洞,并且会增加一堆认知复杂性,因为现在您必须记住这只是因为您有三个副本,它不会这意味着两个人可能会失败,除非你特别小心你放三个中的每一个。

对于大多数用途,只需在单个JVM / Solr实例中使用其他分片就更简单了,并实现了将每个核心的索引大小降低到可管理级别的相同性​​能目标。这是SolrCloud的核心功能。

我所知道的唯一例外是你正在处理需要非常大的JVM堆的索引或使用模式。一个非常大的JVM堆可能导致最大GC暂停时间,而GC调优只能帮助这么多。在这种情况下,使用多个JVM(每个JVM具有一个副本/分片)​​可以将最坏情况的GC暂停限制为单个副本所需的暂停。

你也提到了Zookeeper,所以值得注意的是ZK是一个有点不同的野兽。您可能应该单独托管ZK,您应该始终使用奇数个ZK节点,并且每个物理主机永远不会超过一个。