MongoDB是一个开源文档数据库提供高性能、高可用性和自动缩放。MongoDB不再需要一个对象关系映射(ORM)促进发展。
MongoDB目前列为# 5身后的世界上最受欢迎的DBMSPostgreSQL,该软件、MySQL和Oracle。
在这篇文章中,我们将讨论如何利用Spotinst的Elastigroup MongoDB计算成本减少80%在不影响可用性、性能和用户体验。
MongoDB副本集容错是如何运作的吗
为了提供容错,MongoDB允许创建副本集这是,本质上MongoDB服务器集群实现主从复制和自动故障转移。
在副本集,所有写操作去设置的主,谁操作在主节点上的操作日志记录。二级成员不断复制操作日志和操作适用于在一个异步的过程。
如果主实例失败,副本集成员正试图组建一个多数,然后选出一个新的主要设置,多数是强制选择一个新的主要保存副本集作为一个整体的完整性。
在情况下,群体不满意(没有多数),通过二级实例数据仍然是可读的,但不能让写操作。
容错表
| #成员 | #需要多数 | #容错 |
| 3 | 2 | 1 |
| 5 | 3 | 2 |
| 6 | 4 | 2 |
插图
另一个例子
请参阅MongoDB文档以了解更多关于副本集和如何配置:
https://docs.mongodb.com/manual/replication/
https://docs.mongodb.com/manual/tutorial/deploy-replica-set/
实例的重要性分布在可用性区域(数据中心)
为了保护数据的可用性区域失败,实例应该分布在多个可用性区域如果可能的话,使用一个奇数的可用性区域,并选择一个分布的成员即使有损失的可能性最大化一个可用性区域,其余副本集成员可以形成多数。
MongoDB和现货实例
现货实例不是第一件事想到的在设计MongoDB集群时,
其动态特性和他们可以在2分钟内终止通知,很难维持一个稳定的环境——这Elastigroup发挥作用的地方。
Elastigroup允许100%的可用性服务的EC现货市场,通过选择合适的收购,历史和实时数据分析选择现货实例提供最低价格和最高寿命。使用预测算法,现货市场的变化确定提前15分钟并更换无缝地触发,没有服务中断。
Elastigroup还可以跨可用性区域分配实例和实例类型减轻网络划分问题。
注意:当需要选举直到新的主要当选,副本集停止接受请求。最小化的主要替代品,最好的做法是至少1按需运行实例并设置其优先考虑的初选到1000。
了解更多关于成员优先级:
https://docs.mongodb.com/v3.0/tutorial/adjust-replica-set-member-priority/
保留数据量
在运行MongoDB集群时,重要的是要保存数据,当数据丢失将发起一个“重建”的过程和数据同步。这个过程可能需要一些时间(取决于数据的量),也可以是相当昂贵的,如果数据复制在可用性区域。在重建的时候,用户可能经历表现不好是因为读的原因,至少有一个副本不是可查询。
作为状态特征的一部分,Elastigroup允许保留机器的数据量,任何EBS卷附加到实例将连续快照在机器运行时,将使用的块设备映射配置替换。
配置
如果你预先配置的副本集,使用以下步骤运行MongoDB集群Spotinst Elastigroup
- 登录到Spotinst控制台
- 单击Elastigroups
- 创建/编辑相关Elastigroup
- 在“计算”找到并展开“有状态”部分
- 检查“持久化根卷”选项
- 选择“保持根卷”
- 检查保存数据量的选择
- 选择“热EBS迁移”
- 添加你想要的数量被保留在实例替换
- 检查“坚持私有IP”选项
我希望这篇文章能够对您有所帮助,
如果所需的任何问题或指导,请联络我们的客户成功的团队CS@spotinst.com。