我正在开发全新的SolrCloud-ZooKeeper基础结构。
一些背景信息:
所有其他服务(主要是网站基础结构)都分布在两个数据中心之间,具有主动-主动配置。
在网络级别,将服务器设置在扩展的LANS上,并在整个数据中心安装暗光纤。因此延迟是最小的。
这些应用程序中的大多数将使用SolrCloud-ZooKeeper基础结构。
我有一个Solr Cloud和一个ZooKeeper合奏正在运行。在此级别上的实现很好。
但是我想知道如何分配ZooKeeper服务器。我的服务器数量必须是奇数,但我只有2个数据中心。如果失败,我将有50-50的机会失去多数席位。
有任何想法吗?到目前为止,我已经想到:
请求第三个数据中心(不太可能发生,$$!)
每个数据中心托管2个主机,在外部云提供商(Amazon或...?)上托管1个主机。再次$$
在数据中心1上设置一个奇数,并在站点2上使用观察者。如果站点1发生故障,会发生什么? SolrCloud只能与1个观察者一起使用吗?
感谢您的任何想法和意见。
尼克
最佳答案
如果您的要求是服务来自本地数据中心的所有搜索请求(请求起源于此),则无需进行跨DC ZK部署。因为跨DC ZK部署仅需要在DC崩溃中幸存下来(极有可能不会发生,这就是为什么您要支付$$$$),所以在这种情况下,无需在多个DC中生成ZK集群