solr - 将 SolrCloud 部署到多台服务器
问题描述
我对 solrCloud 有点困惑。但是如何在多台服务器上部署 SolrCloud?它会是每个单独的服务器一个多个节点,还是可能是一个 solrCloud 节点和每个服务器一个多个分片?
以及所有这些将如何与 Zookeeper 通信(据我所知,Zookeeper 还必须部署在单独的服务器上,这是正确的吗?)
我对这一切有点困惑?你能帮助我吗?或者也许给出一个好的教程的链接?
解决方案
参考手册的SolrCloud 部分应该能够帮助您了解 Solr Cloud 的概念。
您可以在单个服务器上运行多个节点,也可以在每台服务器上运行一个节点。这完全取决于您 - 但是当该服务器出现故障时,在单个服务器中运行的所有节点都会消失。在单个服务器上运行多个节点的用例通常用于试验或非常特殊的要求,以尝试从 Lucene 的单线程部分获得某些加速,因此除非您正在进行低级优化,否则每台服务器都有一个节点是你想要的。
该规则的例外是用于开发和试验——当数据无关紧要时,在一台机器上运行多个节点就可以了。
所有节点组成一个 SolrCloud 集群——因此您将运行多个节点,而不是多个集群。
Zookeeper 应该(通常)部署在三到五台服务器上 - 取决于您希望故障转移的弹性类型。虽然 Solr 捆绑了一个 Zookeeper 实例,但如果您不想自己设置 Zookeeper,则可以使用,但不建议将其用于生产。在生产环境中,您会将 Zookeeper 作为单独的进程运行 - 但这可能并不意味着您将在单独的服务器上运行它。根据您为节点看到的 Zookeeper 的流量和使用量,在与云节点相同的服务器上运行它们将完全正常。关键是要避免使用捆绑版本来完全控制 Zookeeper 及其配置,并能够在 Solr 之外升级/管理实例。
如果以后需要,您可以将 Zookeeper 移动到它自己的服务器集群(至少三个)。
推荐阅读
- google-sheets - 是否可以为表单条目使用自定义字体?
- r - 如何根据来自两个不同变量的值生成虚拟处理变量
- assembly - 汇编——为什么在处理局部变量时减去`rsp`而不是push?
- sql - 当订单具有相同数量的项目时如何使用 SUM DISTINCT
- java - Java条件运算符三种可能的结果
- python - 追加到空 np 数组或为数组分配新值
- python - 用python拟合二维数据
- php - 如何在 Prado 3.3.0 中为 MasterClass 编写正确的 application.php 配置?
- python - 具有两个参数的参数化 sql 查询,其中一个是列表的集合
- android - AndroidX Spinner 不显示列表