我正在开发一个全新的SolrCloud - ZooKeeper基础架构。
一些背景资料:
我有一个Solr Cloud,还有一个ZooKeeper集合正在运行。这个级别的实施很好。
但我想知道如何分发我的ZooKeeper服务器。我必须拥有奇数个服务器,但我只有2个数据中心。如果一个失败,我有50%的机会让我失去多数。
有什么想法吗?到目前为止,我已经想过:
请求第三个数据中心(不太可能发生,$$$!)
每个数据中心的主机2和外部云提供商的1个(亚马逊或......?)。再次$$$
在数据中心1设置一个奇数,并在站点2上使用观察者。如果站点1失败,会发生什么? SolrCloud只能与1位观察者一起工作吗?
感谢您的任何想法和意见。
尼克
答案 0 :(得分:1)
如果您的要求是提供来自本地数据中心(请求来源)的所有搜索请求,那么您不需要进行跨dc zk部署。导致交叉直流zk部署只需要在DC崩溃中存活(很可能不会发生,这就是你支付$$$$的原因)所以在这种情况下不需要在多个DC中产生zk集群
答案 1 :(得分:1)
很久以前,但是,让我们分享我的所作所为。
我有第三个站点来托管另一个ZooKeeper实例。这个网站是我公司的另一个办公室,而不是一个完整的DC"。所以每个站点都有1个ZK。
让我在3 DC上散布一个簇的原因是它们足够接近以在它们之间产生暗光纤。延迟非常低,不会影响ZK性能。
然后对于SOLR,我在两个主要DC上获得了完整的副本。第三个办公室只承载法定人数的ZK。使用完整的副本,我拥有每个DC中的所有数据。如果我的SOLR需要稍后增加,我会分片,但是现在我们的索引很小。
它已经证明了4年的稳定性,1次失败。这是在第3办公室,而不是在DC。