MongoDB分布式

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

MongoDB 复制集架构,基于MongoDB复制,构造出的分布式数据库解决方案:

MongoDB提供了和MySQL Cluster类似的架构,在configre server、mongos、mongo中,包含:

configure server: 提供集群元数据,其中包含基本信息,每个replica set,trunk及trunk大小等信息

Mongs: 数据访问路由、查询优化、数据merge、sort,裁剪等功能,请求推送等

mongo+replica set:数据存取(使用mongo协议还提供直接数据访问)

MongoDB Shard架构

wKioL1gXWzLjhQpqAAAzqkEkMEI518.png-wh_50


MongoDB在构建集合时,需要提供数据分片规则,该规则将被记录在mongoDB中,查询请求mongos发起请求,mongos根据存取路径在Replica中访问数据

由于MongoDB为用户提供了一个选择性,将数据如何进行切片,在对用户访问透明的情况下,快速存取数据

MongoDB面临的问题:

以非分片规则访问数据时(索引可以建立在各个分片),将导致所有Mongo簇节点全扫描(可以通过多份冗余拷贝并进行不同的分片规则实现,这也是当前数据分片应用常用的手段)

当新增数据簇时,将导致所有数据节点重构,直接影响性能

总结:

MongoDB使用堆存取路径方法组织数据、不包含ACID特性对于数据大量数据更新及查询(对于拥有MVCC的架构,将降低在高并发、大数据集的响应速度)有很大的提升,但没有ACID保证关键数据的稳定、安全



本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1867873

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
存储 缓存 NoSQL
BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略
BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略
|
7月前
|
存储 JSON NoSQL
95分布式电商项目 - MongoDB 简介
95分布式电商项目 - MongoDB 简介
37 0
|
存储 NoSQL 安全
MongoDB分布式存储数据库系列(三)------用户与权限管理
Mongodb 作为时下最为热门的数据库,那么其安全验证也是必不可少的
66 0
|
存储 缓存 NoSQL
分布式服务器框架之Servers.Core中 实现Log模块设计 写入MongoDB数据库
游戏服务器中都需要用到Log模块,log模块存在的意义第一个是将log输出到控制台又或者是写入到log文件中,出了BUG方便定位;第二是常用于将用户的数据(例如玩家登录、道具购买量)将这种log统计到数据库中,方便统计用户留存信息、数据分析等。
|
NoSQL MongoDB 数据库
分布式服务器框架之Server.Core库中实现YFUniqueEntity、YFUniqueIDBase 管理MongoDB 自定义Id的自增
YFUniqueEntity是数据库中的结构,GetUniqueID函数中会根据Type和自增步长去数据库中寻找该类型的当前ID是多少,然后会用当前的Id去加上步长,把更新后的新ID插入到MongoDB中记录着ID的那张表里。
|
NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现 MongoEntityBase 实现阻塞 异步对MongoDB的增删改查
YFMongoDBModelBase类是个模板类,对模板参数进行了约束YFMongoEntityBase,必须要继承YFMongoEntityBase
|
JSON NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
|
SQL NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB对象实体类 管理对象ID
MongoDB中的ID是一个hash码,和传统的关系数据库相比MongoDB没有办法实现ID的自增,如果需要ID自增的话,所以要自己管理ID,并且把对应类型的ID写入到一个专门的Collection(其实就是Sql中的Table)里面去,每次创建新对象的时候,都要取到该类型当前的ID,然后在这个基础上+1,比如当前是角色的ID是1,又创建了一个新的角色,要在原来的基础上+1 ID=2。今天先把MongoDB的对象实体基类实现了。
|
NoSQL Redis CDN
分布式服务器框架之搭建C#+MongoDB+Redis初步
WebAccount站点主要干的事儿是下发 服务器状态信息,这个服务器会和WorldServer建立连接,等所有的GameServer初始化完成之后会同步给WorldServer,WorldServer同步给账号服务器站点,然后账号站点等待玩家请求。
|
NoSQL 算法 中间件
分布式服务器框架之搭建C#+MongoDB+Redis初步
Common类库主要做的是一些大家都需要用到的通用的事情,为了避免重复,所以就提取出来了一个Dll。Common库主要是实现了表格数据的加载模块、在CsRedisClient、MongoClient中间件的基础上进行二次封装。实现了数据库连接、Redis连接、以及数据库和Redis的增删改查断开操作。