Mongo

1.存储方式:虚拟内存+持久化,mongodb使用的是内存映射存储引擎,即Memory Mapped Storage Engine,简称MMAP,MMAP可以把磁盘文件的一部分或全部内容直接映射到内存,它将热数据存储在物理内存中,使得热数据的读写变得十分快。

2.扩展性,存储的数据格式是json格式,灵活的Schema

3.内置GridFS,海量存储。

4.副本集+分片sharding-------扩展性,高可用 

failover机制,失败选举。

分片(sharding)其实就是数据拆分,把数据分散在多个节点上,也就是水平拆分。MongoDB 支持自动分片,

 

 

不适用的场景 
1)MongoDB不支持事务操作,需要用到事务的应用建议不用MongoDB。 
2)MongoDB目前不支持join操作,需要复杂查询的应用也不建议使用MongoDB。

占用内存大

 

MOngo高可用

 

注意:脑裂过程中设置优先级没用。
1、删除节点至剩下1个或者3个节点,保持3个节点存活(此时mongo能正常选举出PRIMARY 。 ):
config=rs.conf()
config.members=[config.members[0],config.members[2],config.members[3]]
rs.reconfig(config,{force:true})
(注意:"_id" : 4 并不是对应下标。members 对应的是数组的下标。从0开始。)
 
2、如果是删除至于剩下2个数据节点。切2个数据节点都是启动状态,此时PRIMARY已然会在2个节点之间飘浮。但2个节点还算可控,可以通过 rs.addArb("192.168.1.92:29121") 方式在主节点加入仲裁节点。
 
3、强制加入仲裁节点:
config=rs.conf()
config.members=[config.members[0],config.members[1]....(把所有需要加入的节点列出),{_id:5,host:"127.0.0.1:27023",priority:5,arbiterOnly:"true"}]
rs.reconfig(config,{force:true})
 
 
 
 
 
 

posted on 2019-03-04 11:57  samuel1  阅读(310)  评论(0编辑  收藏  举报

导航