作为一种自动化数据库服务,MongoDB Atlas,目前被数以千计的客户应用在广泛的行业中,以提供高可用性,一致性,以及一些简单的操作。
Sega’s Hardlight Studio 迁移到Atlas以支持实时数据处理的要求,并在云计算和提高数百万移动游戏玩家的用户体验。
MongoDB Atlas保证高可用性与容错架构和自动恢复功能。副本集成员分布在用户自定义的区域中;如果其中某一节点发生故障导致不可用,则节点间的选举和故障转移的过程将会自动进行,无需人工干预。你可以选择41个地区分布在在不同的AWS、Azure,GCP等上,确保所管理的数据库是在最接近应用服务器的节点处。虽然这些配置已经为应用程序提供了相当大的契合,但客户会要求更多的选项和灵活性。
今天我们将介绍一下关于跨区域复制的MongoDB Atlas。在单个云中,我们可以启用跨区域部署,以获得更好的可用性保证,并提高本地读取的性能。
以下是它的工作原理。在创建或修改部署时,我们将看到一个“Enable cross-region configurations options”链接,如下所示:
选择此链接将会呈现两个可选项:
- 我们可以跨多个区域部署,以获得更好的可用性保证。这意味着在其他区域中的副本集成员将参与选举,并且在我们的主节点发生故障时,将自动进行故障转移。请注意,我们还可以选择主节点,这是读取和写入区域默认为假定没有活动故障或故障转移条件的区域。
- 另外我们还可以部署只读副本集成员。只读副本集成员允许你优化本地读取(减少读取延迟)使用一个单一的MongoDB节点部署在不同的地理区域上。顾名思义,这些复制集成员将不参与选举和故障转移过程,并且永远无法当选为主节点。
让我们来看几个例子。假定我们的首选地区是us-east-1 AWS,我们不仅要承受一部分区域的停电(类似一个可用性区域脱机),同时也要承受整个AWS区域停电。我们的配置可能看起来像下图所示,在那里我们的三个副本集的节点分布在3个AWS地区。我们也可以将副本集的节点数量增加到5个,保持2个节点在我们的首选地区us-east-1,2个节点在us-east-2,1个节点在us-west-1。这将增加我们的主节点在部分区域中断期间留在首选区域的可能性。请注意,Atlas将告诉我们配置提供的可用性保证,并在绿色字体中突出显示。
在下面的例子中,我们假定us-east-1区域具有集群的可用性保证,但我们在英国拥有一个非常重要的客户,需要为他们提供最佳的用户体验。我们可以设置如下所示的配置,在伦敦数据中心中部署只读副本集成员以供本地读取。
在下面所示的配置中,我们已经启用了这两种选项——我们的集群分布在美国的3个区域中,以确保在整个区域中断的不太可能发生的情况下可用,并且为我们的伦敦用户群体提供了一个只读副本集成员。
跨区域复制现在已经可以在AWS、Azure和GCP上部署了。此外,我们还可以在同一项目中的不同区域中拥有集群,并在区域之间轻松地部署,同时保留可用性。
按每个项目的大小(和价格)管理集群
我们正在引入新的M2和M5实例个数,可在所有3个云的选择区域中使用。
建立一个多租户架构,这些新的实例个数允许我们以非常低的、可预测的价格去启动一个项目或规模超出M0自由层。
当我们的存储、性能或隔离要求发生变化时,可以轻松地越过初始边界并扩展到专用的集群上。
MongoDB Atlas目前已经支持了跨区域复制。M2S和M5S正在公测。
我们一如既往的希望听到你们的反馈mongodb-atlas@mongodb.com。
如果不是Atlas用户,可以免费注册一个512mb的数据库哦~
我是上海小胖[MiracleYoung],专注MongoDB、MySQL、Redis等开源数据库的 DevOps,拥抱开源,接受收费。
上海小胖[MiracleYoung] 原创地址: https://segmentfault.com/u/shanghaixiaopang/articles
欢迎各位大神前来评论。
每周五,敬请期待,上海小胖[MiracleYoung] 独更。
如果夏雨荷还在大明湖畔等着我的话,我就不更了。
评论前必须登录!
注册