mongodb的主从、集群的简单介绍

主从

mongodb可以设置主从数据库,主从之间读写分离。主数据库只写,从数据库只读。最好再设置一个用于仲裁的mongod(arbiter,占用资源很少,不需要独立的服务器),在主数据库宕机的情况下,arbiter会自动将从数据库升级为主数据库。主从服务器更多是为了数据的安全性,虽能提高一点读写性能,但效果不明显。需要注意的是,因为读写分离,在写入的时候,只写入到主数据库,从数据库是异步写入的。所以不能实时读取。

 

集群

也叫分片集群,是将很多mongod集成在一起,每个mondod都只保存部分的数据,以提高整个数据库的负载能力,这是mongodb支持高负载的关键所在。

分片集群的构成元素有:

  • routes :对外暴露的节点,用于客户端访问,为了网络负载均衡,一般都会配置多个,客户端可以选择访问其中的任何一个
  • Configure server :配置服务器,保存所有 shard metadata 。如果它工作不正常,那么整个集群就不能用了。所以一般都配置 3 configure server 3 个的数据是一模一样的)
  • shard :一个 shard 就是一个 Replica set,也就是上面所说的主从数据库 。真正的存储数据

分片集群的shard肯定不止一个,否则就没有意义。数据分散存储于各shard中。以学生为例,可以根据学号,将学号1-100000的存储于一个shard中,学号100000-200000存储于另一个shard中。于是每个shard存储的数据量都不会太大,必要时候可以增加shard以支持学生数量的增加(这里只是举例,学生不会有太大的数量级)。

 

 分片集群的几点说明:

  1. 分片集群中的 Replica set ,写操作是主从同时进行的,所以读写实时。
  2. 在分片的情况下,如果查询条件里含有分片的条件(比如上述的学号),会智能在有关分片的服务器里查询;如果分片条件不在查询条件中,则全局查询。如果查询语句有排序,mongo会在返回最终结果集之前进行排序
  3. 分片的时候,如果分片条件不是_id,要自己保证_id全局唯一
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值