高可用性的Solr主从设备故障转移设置

时间:2012-08-09 14:58:41

标签: solr elasticsearch solrj solrcloud

使用Solr(我们目前使用3.5)时,我们如何设置故障转移大师?

让我们在我的设置中说我有两个主人和两个奴隶。应用程序将所有写入提交给一个活动主服务器,并且两个从服务器都从此活动主服务器获取更新。还有另一个中继器,与主人的目的相同。

现在我的问题是,如果主人出于某种原因退出,我怎么能在没有任何人工干预的情况下将中继器作为主人。奴隶如何开始从Repeater而不是破碎的Master获取更新。有推荐的方法吗?是否有其他推荐的主/从设置来确保Solr系统的高可用性?

2 个答案:

答案 0 :(得分:4)

目前,您最好的选择可能是调查当前Solr 4.0 alpha中存在的SolrCloud功能,该功能在撰写本文时将在几个月内完成。 SolrCloud的目标是处理数据分发和主控选举,使用ZooKeeper分布式数据库在集群内保持关于哪些节点在角色中服务的共识。

还有其他更传统的方法可以为Solr 3的复制主从架构设置故障转移,但我个人不希望Solr 4.0的投资接近发布。

修改:请参阅Linux-HA,了解一种传统方法。就个人而言,我会创建一个专门构建的守护进程,重新配置您的核心和负载均衡器,使用ZooKeeper进行状态检测和分布式锁定。

如果外包是一种选择,您可以考虑托管服务,例如我自己的简单Websolr。我们默认提供这种分发和热故障转移,因此我们的客户不必太担心它的实现方式。

答案 1 :(得分:3)

我同意尼克。复制在Solr 3.x中的工作方式并不总是很方便,特别是对于主故障转移。如果您打算考虑Solr 4,您可能也想看看elasticsearch,它以非常出色的方式解决了这类问题!

它使用推送复制而不是Solr使用的拉取机制。这意味着文档在字面上重新编制索引在所有节点上。这可能听起来很奇怪,但允许减少网络负载(例如,由于段合并)。此外,一个节点被选为主节点,如果它崩溃,另一个节点将自动将其替换为新的节点。