我正在尝试找出在两个节点上结合 Drupal 7 部署 solr(6.6.6)的最佳方法,以提供某种弹性。
第一个问题是 Drupal 仅支持单个 solr 实例的概念。因此,即使实现了多个 solr 服务器,Drupal 外部的负载平衡在环境中的某个地方是需要的。这是额外的复杂性,我希望至少在短期内避免。
第二个问题是我只有 2 个服务器可用。因此 SolrCloud 无法用作 ZooKeeper 节点,这意味着我只能使用单个 solr 服务器,无法恢复,而且对于我的小环境来说,这可能有点过头了。
我可以将两个 solr 服务器配置为主/从服务器,但这会遇到一个问题,即 Drupal 不支持没有负载平衡的两个 solr 节点的概念。但即使实现了负载平衡,如果主服务器丢失,我将从服务器重新配置为主服务器,我将无法响应搜索查询,因为主节点只维护索引。
我甚至考虑过在同一个节点上运行主服务器和从服务器,这在技术上似乎是可行的。但这似乎并没有真正解决任何问题。
如果我面临手动干预,我很乐意将第二台 solr 服务器作为备用服务器,并将 solr 索引复制到该服务器。但这似乎需要主服务器/服务器配置,而如果没有负载平衡,Drupal 不支持该配置...
这让我想到了我的问题:
- 我是否遗漏了任何明显的东西,这将允许第二个 solr 节点为 drupal 提供某种形式的弹性(甚至是手动),而无需外部负载平衡?
- 目前我认为最好的方法是部署两个独立的 solr 服务器,其中一个处于活动状态。然后使用Solr 的备份设施在活动服务器上,通过 rsync 将备份复制到备用节点,然后在备用节点上恢复备份。这意味着我有一个相当最新的第二台 solr 服务器准备就绪,只需在 Drupal 中进行少量配置更改即可使其上线。这种方法有什么缺陷吗?或者有更好的想法吗?