我正在学习Mongodb大学的M103课程,在那里,他们对什么是集群和复制集做了一个简单的概述.根据我的理解,集群是一组服务器或节点,而复制集是一组服务器或节点,所有这些服务器或节点都有内置的复制机制,以便于停机和访问。而复制集则是一组服务器或节点,每台服务器或节点都内置了复制机制,以实现停机访问和快速读取操作。
由此看来,复制集是一种特殊类型的集群,但我的困惑来自于MongoDB Atlas。在mongoDB atlas中,人们必须创建一个集群,那是不是也是一个复制集?
这些术语在所有场景下都可以互换吗?
复制集
在MongoDB中,复制集是一个概念,它描述了一组MongoDB服务器的工作情况,提供冗余(复制集中的所有服务器都有相同的数据)和高可用性(如果一台服务器宕机,其余服务器仍然可以满足请求)。当你创建一个副本集时,你至少需要3台服务器。总会有一个主服务器(读写),其余的称为次服务器(只用于读取)。
MongoDB Atlas集群
Atlas是一个DaaS,意思是数据库服务公司。他们消除了维护、扩展和监控内部MongoDB服务器的负担,这样您就可以专注于您的应用。
Atlas MongoDB集群是您给Atlas的一套配置,这样它就可以为您设置MongoDB服务器。因此,MongoDB ReplicaSet是Atlas中的一个功能子集。
例如,在创建Atlas集群的时候,他们会问你是否要复制集、碎片集群等。另外,你要在哪个云提供商中部署。你的备份策略,你的MongoDB硬件的规格等等......
这里的关键词是配置。在一天结束的时候,你将拥有你的MongoDB服务器(无论是否复制集)并做好准备。
总结
MongoDB集群
MongoDB服务器的特定配置集,以提供特定的功能,即复制集和Sharding。
MongoDB Replicaset
一个MongoDB集群设置,以提供3个或更多奇数服务器(3,5,7等)的冗余和高可用性。
MongoDB Atlas集群
高层次的MongoDB集群配置,允许你设置一个复制集或其他类型的MongoDB集群及其位置和性能范围。
我建议你玩玩他们的web控制台。你一定会看到区别。