背景
我们正在构建一个将在全球范围内使用的Web解决方案。为了支持最终的目标受众,我们正在尝试设计解决方案,以便将其托管在3个不同的数据中心中。用户将根据位置数据被路由到最近的服务器。
首先,我们将仅将此解决方案部署到一个数据中心,并且只有北美的用户才能使用该解决方案。
技术设置
MongoDB和RethinkDB已被列入数据库的候选名单。我们需要能够进行多主机复制的东西,因为我们需要能够从任何一个数据中心读取和写入数据库。
问题
管理层希望在两周内完成交付。同样的故事。他们过度承诺我们...在人员配备等方面
我需要提出一种可以证明未来发展的设计。我对MongoDB的熟悉程度还不够高,因此我无法确定已经确定了现在需要交付的所有组件,并且仍然可以作为未来的证明。
迄今为止的设计
截至目前,我正计划将每个数据中心设置为mongodb“区域”。 在每个区域中,我将有一个主要的碎片,如下所示:
北美地区-碎片A 欧洲区-碎片B 亚洲区-碎片C
每个分片将被复制到其他2个区域。因此,分片A将成为副本集的一部分,因此在欧洲和亚洲,我都将拥有分片A的副本。
我还不确定如何设计分片键。我正在考虑国家/地区名称,因为我将拥有类似的位置数据。当我看到来自日本的请求时,我将其发送给“亚洲” dc,但如果它来自法国,它将被打到欧洲DC。
特定问题
TP开始,我要创建3个区域...分片A仅用于北美地区。然后我将分片A复制(复制)到其他2个区域。如果有什么特别的事情需要考虑,因为我打算以后再添加更多的主要分片..请告诉我。
我仍在考虑问题,所以我确定我应该要问的问题是我什至没有想到。 如果您有任何意见或建议,我会全力以赴。 谢谢