热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDBSharding集群配置示例

Shardingcluster介绍这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统。要构建一个MongoDBShardingCluster,需要三种角色:ShardServer:mongod实例,用于存储实际的数据块,实际生产环境中一

Sharding cluster介绍

这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统。

 要构建一个 MongoDB Sharding Cluster,需要三种角色:

Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障

Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。

Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

Sharding架构图:

本例实际环境架构

本例架构示例图:

  1. 分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的shard1
  2. 分别在3台机器运行一个mongod实例(称为mongod shard21,mongod shard22,mongod shard23)组织replica set2,作为cluster的shard2
  3. 每台机器运行一个mongod实例,作为3个config server
  4. 每台机器运行一个mongs进程,用于客户端连接
主机  IP 端口信息
Server1 10.1.1.1 mongod shard11:27017
mongod shard12:27018
mongod config1:20000
mongs1:30000
Server2 10.1.1.2 mongod shard12:27017
mongod shard22:27018
mongod config2:20000
mongs2:30000
Server3 10.1.1.3 mongod shard13:27017
mongod shard23:27018
mongod config3:20000
mongs3:30000

软件准备

软件准备
1. 创建用户
groupadd -g 20001 mongodb
useradd -u 20001 -g mongodb mongodb
passwd mongodb

2. 安装monodb软件
su ? mongodb
tar zxvf mongodb-linux-x86_64-1.6.2.tar
安装好后,目录结构如下:
$ tree mongodb-linux-x86_64-1.6.2
mongodb-linux-x86_64-1.6.2
|? GNU-AGPL-3.0
|? README
|? THIRD-PARTY-NOTICES
`? bin
    |? bsondump
    |? mongo
    |? mongod
    |? mongodump
    |? mongoexport
    |? mongofiles
    |? mongoimport
    |? mongorestore
    |? mongos
    |? mongosniff
    `? mongostat
1 directory, 14 files

3. 创建数据目录
根据本例sharding架构图所示,在各台sever上创建shard数据文件目录
Server1:
su ? monodb
cd /home/monodb
mkdir -p data/shard11
mkdir -p data/shard21
Server2:
su ? monodb
cd /home/monodb
mkdir -p data/shard11
mkdir -p data/shard22
Server3:
su ? monodb
cd /home/monodb
mkdir -p data/shard13
mkdir -p data/shard23

配置relica sets

1. 配置shard1所用到的replica sets:
Server1:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod ?shardsvr ?replSet shard1 ?port 27017 ?dbpath /home/mongodb/data/shard11 ?oplogSize 100 ?logpath /home/mongodb/data/shard11.log ?logappend ?fork

Server2:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod ?shardsvr ?replSet shard1 ?port 27017 ?dbpath /home/mongodb/data/shard12 ?oplogSize 100 ?logpath /home/mongodb/data/shard12.log ?logappend ?fork

Server3:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod ?shardsvr ?replSet shard1 ?port 27017 ?dbpath /home/mongodb/data/shard13 ?oplogSize 100 ?logpath /home/mongodb/data/shard13.log ?logappend ?fork

初始化replica set
用mongo连接其中一个mongod,执行:
> cOnfig= {_id: ‘shard1′, members: [
                          {_id: 0, host: '10.1.1.1:27017'},
                          {_id: 1, host: '10.1.1.2:27017'},
                          {_id: 2, host: '10.1.1.3:27017'}]
           }

> rs.initiate(config);

同样方法,配置shard2用到的replica sets:
server1:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod ?shardsvr ?replSet shard2 ?port 27018 ?dbpath /home/mongodb/data/shard21 ?oplogSize 100 ?logpath /home/mongodb/data/shard21.log ?logappend ?fork

server2:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod ?shardsvr ?replSet shard2 ?port 27018 ?dbpath /home/mongodb/data/shard22 ?oplogSize 100 ?logpath /home/mongodb/data/shard22.log ?logappend ?fork

server3:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod ?shardsvr ?replSet shard2 ?port 27018 ?dbpath /home/mongodb/data/shard23 ?oplogSize 100 ?logpath /home/mongodb/data/shard23.log ?logappend ?fork

初始化replica set
用mongo连接其中一个mongod,执行:
> cOnfig= {_id: ‘shard2′, members: [
                          {_id: 0, host: '10.1.1.1:27018'},
                          {_id: 1, host: '10.1.1.2:27018'},
                          {_id: 2, host: '10.1.1.3:27018'}]
           }

> rs.initiate(config);

到此就配置好了二个replica sets,也就是准备好了二个shards


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • 一、前言在数据库中,慢查询日志通常是用来进行优化数据库,MySQL中存在慢查询,Mongodb中也是如此。在Mongo中的慢查询属于Mon ... [详细]
  • Abp+MongoDb改造默认的审计日志存储位置
    一、背景在实际项目的开发当中,使用AbpZero自带的审计日志功能写入效率比较低。其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起。所以我们可以重新实现A ... [详细]
  • 今天我们学习,数据库mongodb的使用,最下面有mongodb的下载链接。pipinstallpymongo首先安装pymongo,然后在需要用到的地方importpymongo ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
author-avatar
只为_sunny
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有