搜索
首页数据库mysql教程搭建MongoDB Sharding集群

从1.6版本起,MongoDB开始正式支持Sharding同时,MongoDB也推出了Replica Sets,用以替代之前版本的Replica Pairs通过把Sharding

从1.6版本起,MongoDB开始正式支持Sharding

同时,MongoDB也推出了Replica Sets,用以替代之前版本的Replica Pairs

通过把Sharding和Replica Sets相结合,我们可以搭建一个分布式的,高可用性,自动水平扩展的集群

一个典型的集群结构如下:

集群由以下3个服务组成:

  • Shards Server: 每个shard由一个或多个mongod进程组成,用于存储数据
  • Config  Server: 用于存储集群的Metadata信息,包括每个Shard的信息和chunks信息
  • Route   Server: 用于提供路由服务,由Client连接,使整个Cluster看起来像单个DB服务器
  • 另外,Chunks是指MongoDB中一段连续的数据块,默认大小是200M,一个Chunk位于其中一台Shard服务器上

    下面,,搭建一个Cluster,它由4台服务器组成,包括2个Shard,3个Config,1个Route

    其中每个Shard由一个Replica Set组成,每个Replica Set由2个Mongod节点,1个vote节点组成

    以下是搭建配置的过程:

    1. 四台服务器分别启动相应的Mongod进程:

    192.168.95.216
    /usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set1 –dbpath /pvdata/mongodb_data  –logpath /pvdata/mongodb_log/mongod.log
    /usr/local/mongodb/bin/mongod –fork –shardsvr –port 10001 –replSet set2 –dbpath /pvdata/mongodb_data1  –logpath /pvdata/mongodb_log/mongod1.log

    192.168.95.217
    /usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set1 –dbpath /pvdata/mongodb_data  –logpath /pvdata/mongodb_log/mongod.log

    192.168.95.218
    /usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set2 –dbpath /pvdata/mongodb_data  –logpath /pvdata/mongodb_log/mongod.log
    /usr/local/mongodb/bin/mongod –fork –shardsvr –port 10001 –replSet set1 –dbpath /pvdata/mongodb_data1  –logpath /pvdata/mongodb_log/mongod1.log

    192.168.95.137
    /usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set2 –dbpath /opt/mongodb_data  –logpath /opt/mongodb_log/mongod.log

    2. 分别配置2组Replica Sets:

    192.168.95.216
    mongo –port 10000
        config = {_id: 'set1', members: [
            {_id: 0, host: '192.168.95.216:10000'},
            {_id: 1, host: '192.168.95.217:10000'},
            {_id: 1, host: '192.168.95.218:10001', arbiterOnly: true}
        ]}
        rs.initiate(config)
        rs.status()

    192.168.95.218
    mongo –port 10000
        config = {_id: 'set2', members: [
            {_id: 0, host: '192.168.95.218:10000'},
            {_id: 1, host: '192.168.95.137:10000'},
            {_id: 1, host: '192.168.95.216:10001', arbiterOnly: true}
        ]}
        rs.initiate(config)
        rs.status()

    注意:2台Server上的10001对应的Mongod,它们只负责在某个node down掉后,进行vote选举新的master,它们本身并不存储数据备份

    3.配置3台Config Servers:

    mongod –configsvr –fork –logpath /pvdata/mongodb_log/config.log –dbpath /pvdata/mongodb_config_data –port 20000

    4.配置1台Route Server:

    192.168.95.216
    /usr/local/mongodb/bin/mongos –fork –chunkSize 1 –configdb "192.168.95.216:20000,192.168.95.217:20000,192.168.95.218:20000" –logpath /pvdata/mongodb_log/mongos.log

    chunkSize参数用来设置chunk块的大小,这里为了测试,设置成1M

    linux

    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    mongodb php 扩展没有怎么办mongodb php 扩展没有怎么办Nov 06, 2022 am 09:10 AM

    mongodb php扩展没有的解决办法:1、在linux中执行“$ sudo pecl install mongo”命令来安装MongoDB的PHP扩展驱动;2、在window中,下载php mongodb驱动二进制包,然后在“php.ini”文件中配置“extension=php_mongo.dll”即可。

    Redis和MongoDB的区别与使用场景Redis和MongoDB的区别与使用场景May 11, 2023 am 08:22 AM

    Redis和MongoDB都是流行的开源NoSQL数据库,但它们的设计理念和使用场景有所不同。本文将重点介绍Redis和MongoDB的区别和使用场景。Redis和MongoDB简介Redis是一个高性能的数据存储系统,常被用作缓存和消息中间件。Redis以内存为主要存储介质,但它也支持将数据持久化到磁盘上。Redis是一款键值数据库,它支持多种数据结构(例

    php7.0怎么安装mongo扩展php7.0怎么安装mongo扩展Nov 21, 2022 am 10:25 AM

    php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

    节点从Proxmox VE彻底撤离及再次加入集群节点从Proxmox VE彻底撤离及再次加入集群Feb 21, 2024 pm 12:40 PM

    节点从ProxmoxVE彻底撤离及再次加入集群场景描述当ProxmoxVE集群中有节点损坏无法快速修复时,需要将故障节点干净的从集群踢出,并把残留信息清理干净。否则,新的节点用故障节点曾使用用的IP的地址将不能正常加入集群;同样,从集群中脱离出来的故障节点修复后,虽然与集群已经毫无关系,但访问此单节点的Web管理后台,将出现原ProxmoxVE集群其它节点的信息,非常恼火。从集群中驱逐节点如果ProxmoxVE是Ceph超融合集群,需要登录集群任意节点(欲删除节点除外)宿主系统Debian,命令

    php怎么使用mongodb进行增删查改操作php怎么使用mongodb进行增删查改操作Mar 28, 2023 pm 03:00 PM

    MongoDB作为一款流行的NoSQL数据库,已经被广泛应用于各种大型Web应用和企业级应用中。而PHP语言也作为一种流行的Web编程语言,与MongoDB的结合也变得越来越重要。在本文中,我们将会学习如何使用PHP语言操作MongoDB数据库进行增删查改的操作。

    PHP高并发环境下数据库的优化方法PHP高并发环境下数据库的优化方法Aug 11, 2023 pm 03:55 PM

    PHP高并发环境下数据库的优化方法随着互联网的快速发展,越来越多的网站和应用程序需要面对高并发的挑战。在这种情况下,数据库的性能优化变得尤为重要,尤其是对于使用PHP作为后端开发语言的系统来说。本文将介绍一些在PHP高并发环境下数据库的优化方法,并给出相应的代码示例。使用连接池在高并发环境下,频繁地创建和销毁数据库连接可能会导致性能瓶颈。因此,使用连接池可以

    SpringBoot中logback日志怎么保存到mongoDBSpringBoot中logback日志怎么保存到mongoDBMay 18, 2023 pm 07:01 PM

    自定义Appender非常简单,继承一下AppenderBase类即可。可以看到有个AppenderBase,有个UnsynchronizedAppenderBase,还有个AsyncAppenderBase继承了UnsynchronizedAppenderBase。从名字就能看出来区别,异步的、普通的、不加锁的。我们定义一个MongoDBAppender继承UnsynchronizedAppenderBasepublicclassMongoDBAppenderextendsUnsynchron

    SpringBoot怎么整合Mongodb实现增删查改SpringBoot怎么整合Mongodb实现增删查改May 13, 2023 pm 02:07 PM

    一、什么是MongoDBMongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和索引。MongoDB将数据存储在灵活的、类似JSON的文档中,这意味着文档的字段可能因文档而异,数据结构也会随着时间的推移而改变。文档模型映射到应用程序代码中的对象,使数据易于处理。MongoDB是一个以分布式数据库为核心的数据库,因此高可用性、横向扩展和地理分布是内置的,并且易于使用。况且,MongoDB是免费的,开源

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    2 周前By尊渡假赌尊渡假赌尊渡假赌
    仓库:如何复兴队友
    4 周前By尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒险:如何获得巨型种子
    4 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    EditPlus 中文破解版

    EditPlus 中文破解版

    体积小,语法高亮,不支持代码提示功能

    Dreamweaver Mac版

    Dreamweaver Mac版

    视觉化网页开发工具

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    功能强大的PHP集成开发环境

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    mPDF

    mPDF

    mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),