【问题标题】:Apache Zookeeper: distribution of nodes across data centersApache Zookeeper:跨数据中心的节点分布
【发布时间】:2013-04-19 18:07:08
【问题描述】:

我正在开发一个全新的 SolrCloud - ZooKeeper 基础架构。

一些背景资料:

  • 所有其他服务(主要是网站基础设施)分布在两个数据中心,采用主动-主动配置。
  • 在网络级别,服务器设置在扩展 LANS 上,数据中心使用暗光纤。因此延迟最小。
  • 这些应用程序中的大多数都将使用 SolrCloud - ZooKeeper 基础架构。

我有一个 Solr 云和一个正在运行的 ZooKeeper 集成。在这个级别的实施是好的。

但我想知道如何分发我的 ZooKeeper 服务器。我必须有奇数个服务器,但我只有 2 个数据中心。如果一个失败,我有 50-50 的机会失去多数。

有什么想法吗?到目前为止,我想到了:

  • 请求第三个数据中心(不太可能发生,$$$!)

  • 在每个数据中心托管 2 个,在外部云提供商(Amazon 或 ...?)上托管 1 个。又是$$$

  • 在数据中心 1 设置一个奇数并在站点 2 上使用观察者。如果站点 1 发生故障会发生什么情况? SolrCloud 可以只使用 1 个观察者吗?

感谢您的任何想法和 cmets。

网卡

【问题讨论】:

  • 您确定将单个 SolrCloud 集群分布在 2 个数据中心是一个好主意吗?是镜像集群吗?
  • 您能分享一下您的 solrcloud 部署图吗?因为我们已经将 solrcloud 分布在 3 个数据中心,但我们正在努力解决延迟问题。

标签: apache-zookeeper solrcloud


【解决方案1】:

如果您的要求是为来自本地数据中心的所有搜索请求提供服务(请求源自该请求),那么您无需进行跨 dc zk 部署。因为跨 dc zk 部署只需要在 DC 崩溃中幸存(很可能不会发生,这就是你支付 $$$$ 的原因)所以在这种情况下不需要在多个 DC 中生成 zk 集群

【讨论】:

    【解决方案2】:

    很久以前,但是,让我们分享一下我的所作所为。

    我得到了第三个站点来托管另一个 ZooKeeper 实例。该站点是我公司的另一个办公室,而不是“完整的 DC”。所以每个站点都有 1 个 ZK。

    使我能够将一个集群分布在 3 个 DC 上的原因是它们足够靠近,可以在它们之间形成一根深色光纤。延迟非常低,不会影响 ZK 性能。

    然后对于 SOLR,我在两个主要 DC 上获得了完整副本。第三个办公室仅托管一个 ZK 用于法定人数。使用完整副本,我拥有每个 DC 中的所有数据。如果以后我的 SOLR 需要增加,我会分片,但现在我们的索引很小。

    4 年来,它已被证明是可靠的,其中 1 次失败。而且是在第三办公室,而不是在 DC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 2023-01-31
      相关资源
      最近更新 更多