3

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

一些背景资料:

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

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

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

有任何想法吗?到目前为止,我想到了:

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

  • 每个数据中心托管 2 个,在外部云提供商(亚马逊或...?)上托管 1 个。再次$$$

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

感谢您的任何想法和评论。

网卡

4

2 回答 2

1

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

于 2013-10-28T09:23:32.723 回答
1

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

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

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

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

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

于 2017-09-29T18:15:26.873 回答