搭建高可用MongoDB集群

上传人:Baige****0346 文档编号:266122825 上传时间:2022-03-14 格式:DOCX 页数:17 大小:2.87MB
返回 下载 相关 举报
搭建高可用MongoDB集群_第1页
第1页 / 共17页
搭建高可用MongoDB集群_第2页
第2页 / 共17页
搭建高可用MongoDB集群_第3页
第3页 / 共17页
搭建高可用MongoDB集群_第4页
第4页 / 共17页
搭建高可用MongoDB集群_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《搭建高可用MongoDB集群》由会员分享,可在线阅读,更多相关《搭建高可用MongoDB集群(17页珍藏版)》请在金锄头文库上搜索。

1、如何搭建高可用MongoDB集群【绽放吧数据库】 【摘要】 MongoDB基础请参考: set)请参考: 背景为解决mongodb在replica set每个从节点上面的数据库均是对数据库的全量拷贝,从节点压力在高并发大数据量的场景下存在很大挑战,同时考.MongoDB基础请参考:MongoDB(replica set)请参考:一、概述1.1 背景为解决mongodb在replica set每个从节点上面的数据库均是对数据库的全量拷贝,从节点压力在高并发大数据量的场景下存在很大挑战,同时考虑到后期mongodb集群的在数据压力巨大时的扩展性,应对海量数据引出了分片机制。1.2 分片概念分片是将

2、数据库进行拆分,将其分散在不同的机器上的过程,无需功能强大的服务器就可以存储更多的数据,处理更大的负载,在总数据中,将集合切成小块,将这些块分散到若干片中,每个片只负载总数据的一部分,通过一个知道数据与片对应关系的组件mongos的路由进程进行操作。1.3 基础组件其利用到了四个组件:mongos,config server,shard,replica setmongos:数据库集群请求的入口,所有请求需要经过mongos进行协调,无需在应用层面利用程序来进行路由选择,mongos其自身是一个请求分发中心,负责将外部的请求分发到对应的shard服务器上,mongos作为统一的请求入口,为防止m

3、ongos单节点故障,一般需要对其做HA。config server:配置服务器,存储所有数据库元数据(分片,路由)的配置。mongos本身没有物理存储分片服务器和数据路由信息,只是存缓存在内存中来读取数据,mongos在第一次启动或后期重启时候,就会从config server中加载配置信息,如果配置服务器信息发生更新会通知所有的mongos来更新自己的状态,从而保证准确的请求路由,生产环境中通常也需要多个config server,防止配置文件存在单节点丢失问题。shard:在传统意义上来讲,如果存在海量数据,单台服务器存储1T压力非常大,无论考虑数据库的硬盘,网络IO,又有CPU,内存的

4、瓶颈,如果多台进行分摊1T的数据,到每台上就是可估量的较小数据,在mongodb集群只要设置好分片规则,通过mongos操作数据库,就可以自动把对应的操作请求转发到对应的后端分片服务器上。replica set:在总体mongodb集群架构中,对应的分片节点,如果单台机器下线,对应整个集群的数据就会出现部分缺失,这是不能发生的,因此对于shard节点需要replica set来保证数据的可靠性,生产环境通常为2个副本+1个仲裁。1.4 架构图二、安装部署2.1 基础环境为了节省服务器,采用多实例配置,三个mongos,三个config server,单个服务器上面运行不通角色的shard(为了

5、后期数据分片均匀,将三台shard在各个服务器上充当不同的角色。),在一个节点内采用replica set保证高可用,对应主机与端口信息如下:主机名IP地址组件mongos组件config servershardmongodb-1172.20.6.10 端口:20000端口:21000主节点: 22001副本节点:22002仲裁节点:22003mongodb-2172.20.6.11 端口:20000端口:21000仲裁节点:22001主节点: 22002副本节点:22003mongodb-3172.20.6.12 端口:20000端口:21000副本节点:22001仲裁节点:22002主节点

6、: 220032.2、安装部署2.2.1 软件下载目录创建wget -c https:/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.10.tgztar -zxvf mongodb-linux-x86_64-rhel62-3.4.10.tgzln -sv mongodb-linux-x86_64-rhel62-3.4.10 mongodbecho PATH=$PAHT:/usr/local/mongodb/bin/etc/profile.d/mongodb.shsource /etc/profile.d/mongodb.sh2

7、.2.2 创建目录分别在mongodb-1/mongodb-2/mongodb-3创建目录及日志文件mkdir -p /data/mongodb/mongos/log,confmkdir -p /data/mongodb/mongoconf/data,log,confmkdir -p /data/mongodb/shard1/data,log,confmkdir -p /data/mongodb/shard2/data,log,confmkdir -p /data/mongodb/shard3/data,log,conftouch /data/mongodb/mongos/log/mongos

8、.logtouch /data/mongodb/mongoconf/log/mongoconf.logtouch /data/mongodb/shard1/log/shard1.logtouch /data/mongodb/shard2/log/shard2.logtouch /data/mongodb/shard3/log/shard3.log2.2.3 配置config server副本集在mongodb3.4版本后要求配置服务器也创建为副本集,在此副本集名称:replconf在三台服务器上配置config server副本集配置文件,并启动服务cat/data/mongodb/mongo

9、conf/conf/mongoconf.conf rs.status() set : replconf, date : ISODate(2017-12-04T07:42:09.054Z), myState : 1, term : NumberLong(1), configsvr : true, heartbeatIntervalMillis : NumberLong(2000), optimes : lastCommittedOpTime : ts : Timestamp(1512373328, 1), t : NumberLong(1) , readConcernMajorityOpTime

10、 : ts : Timestamp(1512373328, 1), t : NumberLong(1) , appliedOpTime : ts : Timestamp(1512373328, 1), t : NumberLong(1) , durableOpTime : ts : Timestamp(1512373328, 1), t : NumberLong(1) , members : _id : 0, name : 172.20.6.10:21000, health : 1, state : 1, stateStr : PRIMARY, uptime : 221, optime : ts : Timestamp(1512373328, 1), t : NumberLong(1) , optimeDate : ISODate(2017-12-04T07:42:08Z), infoMessage : could not find member to sync from, electionTime : Timestamp(1512373296, 1), electionDate : ISODate(2017-12-04T07:41:36Z), configVersion : 1, self : true ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 架构

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号