Mongodb的分布式配置

Mongodb存在三种级别的分布式配置:主从配置、集群配置以及集群分片配置,建议我们采用集群配置。

主从配置

  1. 启动主服务器: mongod.exe  --dbpath ..\db  --port 27017 –master
  2. 启动若干个从服务器:mongod.exe --slave --source 127.0.0.1:27017  --dbpath ..\db2 --port 27018,source后面是主服务器的地址和端口号。

这种方式简单灵活,可用于备份、故障恢复,读扩展。为了平衡负载,一般通过读写分离模式,即主库写、从库读。缺点是如果主库down了,就不能写了,不会自动恢复。

集群配置

  1. 启动三个实例:mongod.exe –replSet  rs  --dbpath ..\db --port 27017,mongod.exe –replSet  rs  --dbpath ..\db --port 27018,mongod.exe –replSet  rs  --dbpath ..\db --port 27019。接下来要初始化Replica Sets环境
  2. 登录任何一个实例:mongo.exe --port 27018 –host localhost
  3. config_rs={_id:‘rs‘,members:[{_id:0,host:‘127.0.0.1:27017‘},{_id:1,host:‘127.0.0.1:27018‘},{_id:2,host:‘127.0.0.1:27019‘}]}

  4. 执行rs.initiate(config_rs),成功后执行rs.status()即可看到配置的集群。等所有节点的“stateStr”为“Primary”或者“secondary”则集群同步好了。

  5.  之后如果要添加或者删除节点,使用rs.add(hostportstr), rs.remove(hostportstr)

在集群分两类节点一个Primary和多个secondary(使用rs.isMaster()看节点的类型),Primary可读写,secondary只能读。当Primary 出错时,剩下的secondary会推举一个成为Primary,当出错的Primary恢复正常时会自动添加到集群并成为secondary。

  6.  MongoDB.Driver 的链接配置:

mongodb://localhost:3000,localhost:3001,localhost:3002/?replicaSet=rs&readPreference=primaryPreferred,如果需要更好的性能可以使用 readPreference= secondaryPreferred实现读写分离。

集群分片配置

  1. 创建集群shard-a (同集群配置中的过程)

mongod.exe --shardsvr --replSet shard-a --dbpath "..\data\rs-a-1" --port 3000

mongod.exe --shardsvr --replSet shard-a --dbpath "..\data\rs-a-2" --port 3001

mongod.exe --shardsvr --replSet shard-a --dbpath "..\data\rs-a-3" --port 3002

config_rsa={_id:‘shard-a‘,members:[{_id:0,host:‘127.0.0.1:3000‘},{_id:1,host:‘127.0.0.1:3001‘},{_id:2,host:‘127.0.0.1:3002‘}]}

rs.initiate(config_rsa)

  2. 创建集群shard-b

mongod.exe --shardsvr --replSet shard-b --dbpath "..\data\rs-b-1" --port 30100

mongod.exe --shardsvr --replSet shard-b --dbpath "..\data\rs-b-2" --port 30101

mongod.exe --shardsvr --replSet shard-b --dbpath "..\data\rs-b-3" --port 30102

config_rsb={_id:‘shard-b‘,members:[{_id:0,host:‘127.0.0.1:30100‘},{_id:1,host:‘127.0.0.1:30101‘},{_id:2,host:‘127.0.0.1:30102‘}]}

rs.initiate(config_rsb)

  3. 启动配置服务器

mongod.exe --configsvr --dbpath "..\data\config-1" --port 27019

mongod.exe --configsvr --dbpath "..\data\config-2" --port 27020

mongod.exe --configsvr --dbpath "..\data\config-3" --port 27021

  4. 启动Mongos(也可以多个)

Mongos.exe --configdb localhost:27019,localhost:27020,localhost:27021 --port 40000

把分片shard-a, shard-b添加到分片集群中:(使用mongo.exe登录Mongos)

sh.addShard("shard-a/127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002")

sh.addShard("shard-b/127.0.0.1:30100,127.0.0.1:30101,127.0.0.1:30102")

  5. 开启分片集合(登录到Mongos)

sh.enableSharding("UserSubscribe_DB")

sh.shardCollection("UserSubscribe_DB.Sector",{_id:1})

  6. 查看Mongos状态

sh.status

db.getSiblingDB("config").databases.find():查看分片数据库的设置

db.getSiblingDB("config").collections.find():查看分片集合的设置

  7. MongoDB.Driver 的链接配置

mongodb://localhost:40000/

  8. 对于已有非分片数据,再使用分片集合的方案

首先把现有数据导出,然后在根据以上过程配置分片集群和为库开启分片(选择合适的键进行分片),最后通过Mongos导入数据。这样通过Mongos就能访问了。

时间: 2024-10-11 03:37:47

Mongodb的分布式配置的相关文章

mongodb的分布式集群(1、主从复制)

分布式集群的理解 关于分布式集群的概念有很多的解释,我比较倾向于"分布式集群"为两个概念,即,分布式是一个概念,集群是另一概念. 分布式是把一个整体系统分成多个部分,分别部署到不同的服务器上,然后由中心服务器统一控制,形成的一个对外来说为一个整体的系统.集群是把一个整体,整体的分别部署到多个服务器上的结果. 分布式和集群都是部署上的现象的描述,都涉及到多台服务器的部署,这是分布式和集群相同的地方,当然,其达到的效果也有很多一样的,但是,他们却是描述着两种不同的现象.今天就讲一下关于mo

mongodb的分布式集群(3、分片)

概述 上面两篇博客都是关于mongodb的集群的配置,没有涉及到分布式,该片博客就是写mongodb的分布式,把一个整体,分成多个片,每个片部署到不同的服务器上,这个就是mongodb的分布式,即:mongodb的分片操作. 部署图 mongos服务器做的是路由服务器,config服务器就是保存相应配置的服务器,shard1和shard2就是分片服务器,这两个服务器合在一起才是一个整体,而mongos服务器就是他们的和点,所以,我们客户端只需要和mongos服务器交互就可以了,后面的,服务器自己

mongodb的分布式集群(4、分片和副本集的结合)

概述 前面3篇博客讲了mongodb的分布式和集群,其中第一种的主从复制我们几乎不用,没有什么意义,剩下的两种,我们不论单独的使用哪一个,都会出现相应的问题,比较好的一种解决方案就是,分片和副本集的集合使用,这样就比较完美了. 部署图 在这里,我们需要注意,我们mongos服务器配置成了集群,所以,我们需要在客户端上分别得添加相应的地址,这个和在副本集的那篇博客中将的内容一样,在java客户端程序的具体核心代码,在那篇博客中也给了大家,如果这点不清楚的,可以看看那篇博客. 分片集群的配置 分片集

浅尝key-value数据库(三)——MongoDB的分布式

浅尝key-value数据库(三)——MongoDB的分布式 测试了单机MongoDB的随机读和写入性能,这一节来讲一讲MongoDB的分布式. MongoDB的分布式分成两种,一种是Replication,一种是Sharding.我们主要来看一下Sharding. 先贴一张结构示意图: MongoDB Auto-Sharding的配置非常简单,在不同的机器分别开启shard, config server, mongos的进程即可.(假设config serevr的IP为192.168.1.11

Spring Cloud构建微服务架构(四)分布式配置中心

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务器为各应用的所有环境提供了一个中心化的外部配置.它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用.作为一个应用可以通过部署管道来进行测试或者投入生产,我们可以分别为这些环境创建配置,并且在需要迁移环境的时候获取对应环境的配置来运行. 配置服务器默认采用git来存储

转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到,官方网站也有 Hadoop 安装配置教程,但由于对 Linux 环境不熟悉,书上跟官网上简略的安装步骤新手往往 Hold 不住.加上网上不少教程也甚是坑,导致新手折腾老几天愣是没装好,很是打击学习热情. 本教程适合于原生 Hadoop 2,包括 Hadoop 2.6.0, Hadoop 2.7.1

MONGODB安装与配置

1.下载mongodb,下载地址为:http://pan.baidu.com/s/1qXVvIDA 2.安装mongodb,一路默认配置即可 2.在C盘根目录下建立目录data/db 3.启动mongodb服务,进入安装目录,启动mongod.exe 4.新启动终端,运行mongo.exe, 连接成功!

SpringCloud 分布式配置

转 http://www.cnblogs.com/zhangjianbin/p/6347247.html 前言 在单体式应用中,我们通常的做法是将配置文件和代码放在一起,这没有什么不妥.当你的应用变得越来越大从而不得不进行服务化拆分的时候,会发现各种provider实例越来越多,修改某一项配置越来越麻烦,你常常不得不为修改某一项配置而重启某个服务所有的provider实例,甚至为了灰度上线需要更新部分provider的配置.这个时候有一套配置文件集中管理方案就变得十分重要,SpringCloud

mongodb安装和配置

1. mongodb安装 先下载mongodb,官网地址; http://www.mongodb.org/downloads curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz 解压缩 tar -zxvf mongodb-linux-x86_64-2.6.1.tgz 新建目录 mkdir -p mongodb cp -R -n mongodb-linux-x86_64-2.6.1/ mongodb 2