由于公司业务的发展MSSQL已处于瓶颈。因为没钱买牛逼服务器只能靠软件来实现最大优化了。原来的系统架构如下图:

现在准备把读写数据库和只读数据换成Nosql数据库。最终选择了Mongodb. 下面开始了Mongodb的学习。

1. Mongodb下载:https://www.mongodb.org/downloads?_ga=1.159678843.794950141.1434346788

2.具体安装就不多说了。网上太多介绍的。没必要浪费键盘了。

3.搭建复制集

一个简单的复制集最少包括三个节点。 1.primary 2. secondary,3.arbiter节点

primary: 存储数据。

secondary:同步主节点数据

arbiter: 当主节点故障时,arbiter会投票选择一个secondary充当priary节点。

大致如下:

注意:三个节点其实就是三个Mongod实例。

(1). 创建主节点配置文件内容如下: 文件名:rs0.conf

dbpath = D:\RuntimeServices\MongoDB_Ad\shard00\db        //指定数据存储目录
  logpath = D:\RuntimeServices\MongoDB_Ad\shard00\log\shard00.log    //指定数据库日志目录
  journal = true  //是否启动日志功能
  port = 32000   //端口号
  nohttpinterface = true  //不开启web监控界面
  replSet = rs0           //复制集名称(同一个复制集名称相同)

(2). 创建从节点配置文件(rs1.conf),内容如下:

dbpath = D:\RuntimeServices\MongoDB_Ad\shard01\db
  logpath = D:\RuntimeServices\MongoDB_Ad\shard01\log\shard01.log
  journal = true
  port = 32001
  nohttpinterface = true
  replSet = rs0

(3).创建arbiter节点配置文件(rs2.conf) 内容如下:

dbpath = D:\RuntimeServices\MongoDB_Ad\shard02\db
  logpath = D:\RuntimeServices\MongoDB_Ad\shard02\log\shard02.log
  journal = true
  port = 32002
  nohttpinterface = true
  replSet = rs0

分别生成三个服务

sc.exe create OpenXLive.MongoDB_Ad.Shard00 binPath= "\"D:\RuntimeServices\MongoDB_Ad\mongodb-3.0.4\bin\mongod.exe\" --service --config=\"D:\RuntimeServices\MongoDB_Ad\mongodb-3.0.4\rs0_0.conf\"" DisplayName= "rs0_Service" start= "auto"

(4).链接到主节点执行命令

rs.initiate();

此时复制集只有一个成员。 rs.conf() 进行查看。

按照MongoDB的默认设置。刚才的命令会初始化mongod实例为主节点。 下面把从节点和arbiter加入进去。

rs0:PRIMARY>rs.add("localhost:32001");

rs0:PRIMARY>rs.addArb("localhost:32002");

rs0:PRIMARY>rs.status()   可查看复制集状态。

至此一个复制集创建完成。 在大数据的时代一个复制集远远不够。虽然解决了灾难恢复。但是没有完成数据分片。一台物理机上的空间是有限的。为了实现数据均衡分布在多台机器上。 下面开始了MongoDB的集群搭建。

在Mongodb中搭建一个集群环境非常简单。几分钟就可以完成一个拥有故障转移,数据同步,读写分离,数据分布式存储的集群环境。

二、分片集群架构

分片集群主要有mongos路由进程、配置服务器、复制集组成的分片集合组成。 如下图:

分片集群上一个分片(shard) 就是一个复制集。 当然也可以是一个单个Mongod实例。在集群中一般用复制集。保证一个分片不会故障。如果一个分片出现故障。整个集群就挂了。因为每一个分片上保留数据的一部分。

所有分片的综合才是所有数据。所以我们应该保证每个分片上数据的完整性和稳定性至关重要。

Mongos和配置服务器是轻量级进程。是不会保存数据的。 配置服务器只保存分片的一些状态信息。 所以整个读取集群的过程为: 访问Mongos-查询配置服务器,根据配置服务器要求写入或读取那些分片服务器进行读取数据。

搭建集群步骤:

1. 配置复制集rs0并启动。参考上面介绍

2.配置复制集rs1并启动。

3.配置cofingure服务器。

配置服务器也是一个Mongod实例。

(1).configure服务器1 的配置文件 cfgserver_0.conf 内容如下:

dbpath="E:\Mongodb\config\data\db_config0"

logpath = "E:\Mongodb\config\logs\db_config0.log"

journal = true

port = 30002

configsvr=true

启动服务。

(2).configure服务器2的配置文件参考上面。 启动服务

(3).configure服务器3的配置文件参考上面。 启动服务

4.配置Mongos路由服务器

配置文件cfg_mongos.conf 内容如下:

logpath=""

port = 30000

configdb = localhost:30001,localhost:30002,localhost:30003

启动服务器。

5. 添加各个分片到集群:

打开客户端连接到Mongos服务器。

添加第一个分片的主从节点: mongos>sh.addShard("localhost:30004,localhost:30005")

添加第二个分片的主从节点: mongos>sh.addShard("localhost:30007,localhost:30008")

6.最后通过sh.status()检查是否正确(下图我实际添加了三个分片)

支持分片集群搭建完成。

更多内容:

1.集群完成怎样去访问?

2.用户权限怎么添加?

3.如何监控集群环境是否工作正常。

4.如何做到数据分布式存储

5.片键如何选择?

6.索引建立

7.curd基本操作。

8.读写分离如何控制。

9.c# php java js 等如何使用Mongod集群的?

针对上面问题。接下来会慢慢更新。

MongoDB windows基础配置及集群搭建的更多相关文章

  1. MongoDB 3.4 高可用集群搭建(二)replica set 副本集

    转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<MongoDB 3.4 高可用集群搭建(一):主从模式&g ...

  2. [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...

  3. 在windows下面配置redis集群遇到的一些坑

    最近工作不忙,就决定学习一下redis.因为一直在windows下工作,不会linux,没办法就选择在windows下配置redis. windows下配置redis集群的文章有很多,比如:http: ...

  4. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  5. windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error

    windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...

  6. Linux07 /redis的配置、五大数据类型、发布订阅、持久化、主从复制、哨兵配置、集群搭建

    Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 目录 Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 ...

  7. 架构(三)MongoDB安装配置以及集群搭建

    一 安装 1.1 下载MongoDB 我个人不太喜欢用wget url, 之前出现过wget下载的包有问题的情况 https://fastdl.mongodb.org/linux/mongodb-li ...

  8. ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建

    在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...

  9. windows下的redis集群搭建的艰辛历程

    我是参照这两篇教程进行的操作:   1.https://www.cnblogs.com/weiqinl/p/6490372.html   (主) 2.https://blog.csdn.net/qiu ...

随机推荐

  1. [转]解读Unity中的CG编写Shader系列二

    上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问题浮现出来,顶点着色器的形参是从何处传递过来的? 顶点着色器的形参是gameObject ...

  2. 【转】C#日期时间格式化

    源地址:https://www.cnblogs.com/polk6/p/5465088.html

  3. 【bzoj2437】[Noi2011]兔兔与蛋蛋 二分图最大匹配+博弈论

    Description Input 输入的第一行包含两个正整数 n.m. 接下来 n行描述初始棋盘.其中第i 行包含 m个字符,每个字符都是大写英文字母"X".大写英文字母&quo ...

  4. loj #2051. 「HNOI2016」序列

    #2051. 「HNOI2016」序列 题目描述 给定长度为 n nn 的序列:a1,a2,⋯,an a_1, a_2, \cdots , a_na​1​​,a​2​​,⋯,a​n​​,记为 a[1: ...

  5. PHP选项和运行

    PHP运行模式 五大运行模式 1.cgi 通用网关接口 2.fast-cgi cgi升级 3.cli (Command Line Interface) 4.isapi 微软提供的面向Internet服 ...

  6. JDBC_事务概念_ACID特点_隔离级别_提交commit_回滚rollback

    事务的概念 一组要么同时执行成功,要么同时执行失败的SQL语句,是数据库操作的一个执行单元! 事务开始于: 连接到数据库上,并执行一条DML语句(insert,update或delete),前一个事务 ...

  7. (转)win7英文目录和中文目录,文件夹的别名

    win7英文目录和中文目录,文件夹的别名 在使用win7的很多目录例如我的文档.我的音乐等目录,你会发现文件夹是中文名的,路径也是中文的.但这个不是真的路径.点击一下地址栏,就可以看到真实路径了. 这 ...

  8. easyui datagrid可编辑表格使用经验分享

    文章目录 1相关接口方法 2列属性formatter 3编辑器类型 3.1基于my97的编辑器 3.2简单的密码编辑器 3.3动态增加/删除编辑器 4字段的级联操作 4.1combobox的级联操作 ...

  9. [POI2007]ZAP-Queries 数学

    题目描述 Byteasar the Cryptographer works on breaking the code of BSA (Byteotian Security Agency). He ha ...

  10. Exalogic硬件架构

    1.硬件配置见如下图表. 组件名称 满配 半配 1/4配 1/8配 Sun Rack II 1242 1 1 1 1 计算节点 X2-2.X3-2.X4-2.X5-2.X6-2 30 16 8 4 存 ...