图解MongoDB集群部署原理(3)
MongoDB的集群部署方案中有三类角色:实际数据存储结点、配置文件存储结点和路由接入结点。 连接的客户端直接与路由结点相连,从配置结点上查询数据,根据查询结果到实际的存储结点上查询和存储数据。MongoDB的部署方案有单机部署、复本集(主备)部署、分片部署、复本集与分片混合部署。 混合的部署方式如图:
混合部署方式下向MongoDB写数据的流程如图:
混合部署方式下读MongoDB里的数据流程如图:
对于副本集,又有主和从两种角色,写数据和读数据也是不同,写数据的过程是只写到主结点中,由主结点以异步的方式同步到从结点中:
而读数据则只要从任一结点中读取,具体到哪个结点读取是可以指定的:
对于MongoDB的分片,假设我们以某一索引键(ID)为片键,ID的区间[0,50],划分成5个chunk,分别存储到3个片服务器中,如图所示:
假如数据量很大,需要增加片服务器时可以只要移动chunk来均分数据即可。 配置结点: 存储配置文件的服务器其实存储的是片键与chunk以及chunk与server的映射关系,用上面的数据表示的配置结点存储的数据模型如下表:
Map1
Key range | chunk |
---|---|
[0,10) | chunk1 |
[10,20) | chunk2 |
[20,30) | chunk3 |
[30,40) | chunk4 |
[40,50) | chunk5 |
Map2
chunk | shard |
---|---|
chunk1 | shard1 |
chunk2 | shard1 |
chunk3 | shard2 |
chunk4 | shard2 |
chunk5 | shard3 |
路由结点: 路由角色的结点在分片的情况下起到负载均衡的作用。
关注微信公众号『 Tom弹架构 』回复“MongoDB”可获取配套资料。
本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。关注微信公众号『 Tom弹架构 』可获取更多技术干货!
原创不易,坚持很酷,都看到这里了,小伙伴记得点赞、收藏、在看,一键三连加关注!如果你觉得内容太干,可以分享转发给朋友滋润滋润!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FlyFish 2.0 已发布,大屏开发应用更加灵活便捷
云智慧数据可视化编排平台-FlyFish 自开源至今已有2个月啦!在这期间,这款具有低门槛、高拓展性的应用开发平台,不仅为用户提供了数据可视化一站式解决方案,还获得了中国云联盟优秀开源项目奖,并成为Gitee最有价值开源项目(GVP)。与此同时,在云智慧AIOps社区中,因FlyFish汇聚了一群热爱开源与技术的小伙伴,与他们一同交流学习更是让FlyFish汲取了众多宝贵建议和反馈。近期,经过升级与优化后,FlyFish2.0版本正式发布。 较大改变: FlyFish 2.0 将拆分为组件开发和数据应用两个平台;精细化分工,使得大屏的开发和应用更加专注和高效。 新增功能: 组件开发平台 用于组件开发及组件沉淀,组件开发平台的独立将更有利于组件的开发及灵活的拓展与维护。 新增组件分类功能,支持组件分类管理,支持组件筛查。 支持组件组织修改,根据组件的类型、使用范围等更改组织类别。 新增组件导入导出功能,便于组件灵活分享和接入。 支持组件共用;一个组件开发平台可以对接多个应用平台。 支持组件下载和导入;已下载的组件可导入数据应用平台。 降低组件占用空间;导入到数据应用平台的组件体积更小。 ...
- 下一篇
在 OpenHarmony 开发板上运行 WasmEdge(WebAssembly Runtime)
作者:翁纯仪,WasmEdge Contributor 在 OpenHarmony OS 上运行 WasmEdge,能够改善开发者的开体验。 Why 移动与 IoT 设备的特点是资源受限,软硬件不统一,用户体验却要求很高。设备要能安全,跨平台地运行第三方开发者提供的软件应用(例如,应用商店),因而直接原生编译的软件应用(Native Client, or NaCl)并不主流。鸿蒙与安卓这样的主流操作系统一般提供基于 Java 或者 JavaScript 的软件执行沙盒,来支持第三方应用。但是这样的软件执行沙盒有几个大问题: 支持的编程语言很有限 支持的语言有 IP 与法律风险 性能一般 资源开销大 无法支持实时系统 安全性一般(所以应用商店需要审查制) 而 WebAssembly 作为一个多语言、跨平台、高性能、轻量级、安全的软件执行环境,能让开发者兼得性能、可移植性与安全性。WebAssembly 是移动与 IoT 设备上系统中间件的最佳选择。 WasmEdge 是由 CNCF 托管的轻量级、高性能和可扩展的 WebAssembly runtime,适用于云原生、边缘和去中心化应用程...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19