solr如何处理高可用性?

时间:2016-05-26 07:41:59

标签: database solr distributed-computing solrcloud

我无法理解solr如何处理solrCloud中的高可用性。在其参考指南中,它指出它使用CDCR来处理HA。但我认为这是一个昂贵的策略。

任何人都可以告诉它实际处理HA的原因以及为什么它是最佳方式? 非常感谢。

2 个答案:

答案 0 :(得分:3)

CDCR不适用于高可用性(HA),它不适用于灾难恢复(DR),我认为您对这两个术语感到困惑。

HA计划服务器停机。 SolrCloud通过使用多个副本来托管您的数据来提供HA。在这种情况下,如果集合中的一个副本(服务器)发生故障,其他副本可以处理负载。 Solr会自动将数据复制到集合中给定分片的所有副本。在进行收集时请参阅ReplicationFactor。

DR计划整个网站无法使用。这要求您在另一个数据中心内安装另一个SolrCloud环境,并且显然需要您在那里发送数据以保持两个环境同步。这就是CDCR应该做的事情,将所有更新发送到另一个SolrCloud集群。

答案 1 :(得分:3)

有几个级别的HA - 你需要问问自己,我可以容忍哪种类型的失败?比如:

  1. 节点失败
  2. 多节点故障
  3. 机架故障
  4. 数据中心故障
  5. 地区失败
  6. SolrCloud的基本群集设置为您提供了轻松覆盖#1-3的工具。添加副本,在机架之间正确分配它们。

    使用围绕多个数据中心的单个SolrCloud集群(AWS中的多可用区#4,或AWS中的多区域#5),您可以获得#4甚至#5,但是单个SolrCloud集群没有任何位置感知,因此您需要了解群集内通信通常是跨数据中心的,因此数据中心确实需要彼此之间的低延迟,否则您的查询延迟将受到严重影响。 / p>

    SolrCloud的CDCR是一种连接两个或多个独立SolrCloud集群的方法,实质上是在集群之间创建主/从关系。这为您提供了#4或#5,而没有跨群集流量延迟的惩罚。