数据库集群应该能算的上是数据库服务器的终极解决方案,在降低一定的读取效率的同时,满足了负载和冗余和扩展等多方面的需求,也是当今服务器端的必修课。mongodb在这方面提供了很好的解决方案,简化了使用者的工作量。
首先确定各个组件的数量,mongos 3个, config server 3个,数据分3片 shard server 3个,每个shard 有一个副本一个仲裁也就是 3 * 2 = 6 个,总共需要部署15个实例。这些实例可以部署在独立机器也可以部署在一台机器,我们这里测试资源有限,只准备了 3台机器,在同一台机器只要端口不同就可以,看一下物理部署图:
mongos:数据库集群请求的入口,暴露给用户的接口,它负责把对应的数据请求请求转发到对应的shard服务器上。首先它具备的功能是路由,对用户请求的路由,它自己不存储shard的分布信息,它只是从第三方获取这些信息然后通过这些信息制定路由规则。它的数量由用户请求的压力决定,但是至少要运行两个实例,防止一个挂了全部挂了。不过它的宕机只是影响访问,数据库的数据不会有丢失。
config server:这个服务器记录了所有的shard的分布信息,这些信息可不仅仅是在内存中,还存储在硬盘上。它只负责记录信息,而不负责处理信息。这个服务器很重要,如果宕机了所有的shard就找不到了,也就相当于所有的数据丢失了。一般会配置3台左右来保障服务器的安全,这3台服务器都记录了shard的全部分布信息,相当于彼此的备份。
shard server:所谓的分片,一组shard由一个主一个副本一个仲裁组成,主和副本的数据是完全相同的,仲裁没有数据。对于整个数据库服务来说,可能会有很多组shard服务器来存储数据。主和副本和仲裁应该在物理上隔离,不然起不到备份的效果。其实就是shard服务器要根据生产情况对CPU,内存,带宽,硬盘进行合理配置达到性能最佳。shard宕机副本会顶替,如果整组都宕机有肯能导致这组服务器的数据丢失。
http://www.lanceyan.com/tech/arch/mongodb_shard1.html
相关推荐
MongoDB MongoDB集群搭建 环境集群搭建 MongoDB MongoDB集群搭建 环境集群搭建
自己整理了Mongodb集群搭建的几种方式,按照步骤能够一步步实现~
mongodb集群搭建
MongoDB集群搭建的详细过程,仅供参考。
spring+mongodb集群搭建,包括单个实例和集群实例,详情见博客:http://blog.csdn.net/qq_16497617/article/details/52817335
手把手教你搭建mongodb集群--分片
NULL 博文链接:https://baobeituping.iteye.com/blog/2424965
里面包含Mongodb集群,分片,以及java开发相关资料。全方位概括
mongodb集群部署脚本,包括mongos启动、mongodb config启动,mongodb分片启动,mongodb副本集仲部署等脚本
mongodb实现主从读写分离和数据分片的2中部署方式
该文档详细记录了mongoDB搭建副本集集群的详细流程,参考文献: https://www.cnblogs.com/littleatp/p/8563273.html
简单搭建mongodb集群,可以多实例访问模拟的吧数据库。分别为四台主服务器,两台从服务器,一台仲裁服务器
整合了从MongoDB安装到集群的搭建的全过程,并带有问题的说明
mongo-docker, 基于 Docker的即时MongoDB集群环境 即时MongoDB分片集群这个库为 Vagrantfile 。Dockerfile和 Bootstrap 脚本提供了使用Virtualbox软件管理程序构建的虚拟机来创建MongoDB集群。 在安装完成后,在本地...
MongoDB4.2分片及副本集群搭建 MongoDB集群 MongoDB分片 MongoDB副本 MongoDB副本集群
monggodb集群搭建文档
主要涉及的内容是如何搭建在windows环境下的mongodb集群,包括安装mongodb、mongodb单机下启动、搭建集群环境等内容,适合开始使用mongodb的人使用,很直接明了,很有帮助,值得下载!