【问题标题】:How does solr handle high availability?solr 如何处理高可用性?
【发布时间】:2016-05-26 07:41:58
【问题描述】:

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

谁能说出它实际处理 HA 的方式以及为什么它是最佳方式? 非常感谢。

【问题讨论】:

    标签: database solr distributed-computing solrcloud


    【解决方案1】:

    HA 有几个级别 - 您需要问问自己,我可以容忍哪些类型的故障?比如:

    1. 节点故障
    2. 多节点故障
    3. 机架故障
    4. 数据中心故障
    5. 区域故障

    SolrCloud 的基本集群设置为您提供了非常轻松地涵盖 #1-3 的工具。添加副本,在机架之间正确分配它们。

    您可以获得#4,甚至#5,使用分布在多个数据中心的单个 SolrCloud 集群(#4 的 AWS 中的 Multi-AZ,或#5 的 AWS 中的 Multi-Region),但是单个 SolrCloud 集群没有任何局部性感知,因此您需要了解集群内通信通常是跨数据中心的,因此数据中心之间确实需要低延迟,否则您的查询延迟将受到严重影响。

    SolrCloud 的 CDCR 是一种连接两个或多个独立 SolrCloud 集群的方法,本质上是在集群之间创建主/从关系。这为您提供了 #4 或 #5,而不会受到跨集群流量延迟的影响。

    【讨论】:

      【解决方案2】:

      CDCR 不是为了高可用性 (HA),而是为了灾难恢复 (DR),我认为您混淆了这两个术语。

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

      DR 正在计划整个站点不可用。这要求您在不同的数据中心拥有另一个 SolrCloud 环境,并且显然还需要您将数据发送到那里以保持两个环境同步。这就是 CDCR 应该做的,将所有更新发送到另一个位置的另一个 SolrCloud 集群。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        • 1970-01-01
        • 2011-10-04
        • 2019-10-07
        • 2014-11-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多