MongoDB windows基础配置及集群搭建
由于公司业务的发展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()检查是否正确(下图我实际添加了三个分片)
支持分片集群搭建完成。
更多内容:
2.用户权限怎么添加?
3.如何监控集群环境是否工作正常。
4.如何做到数据分布式存储
5.片键如何选择?
6.索引建立
7.curd基本操作。
8.读写分离如何控制。
9.c# php java js 等如何使用Mongod集群的?
针对上面问题。接下来会慢慢更新。
MongoDB windows基础配置及集群搭建的更多相关文章
- MongoDB 3.4 高可用集群搭建(二)replica set 副本集
转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<MongoDB 3.4 高可用集群搭建(一):主从模式&g ...
- [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...
- 在windows下面配置redis集群遇到的一些坑
最近工作不忙,就决定学习一下redis.因为一直在windows下工作,不会linux,没办法就选择在windows下配置redis. windows下配置redis集群的文章有很多,比如:http: ...
- 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell
Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...
- windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error
windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...
- Linux07 /redis的配置、五大数据类型、发布订阅、持久化、主从复制、哨兵配置、集群搭建
Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 目录 Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 ...
- 架构(三)MongoDB安装配置以及集群搭建
一 安装 1.1 下载MongoDB 我个人不太喜欢用wget url, 之前出现过wget下载的包有问题的情况 https://fastdl.mongodb.org/linux/mongodb-li ...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...
- windows下的redis集群搭建的艰辛历程
我是参照这两篇教程进行的操作: 1.https://www.cnblogs.com/weiqinl/p/6490372.html (主) 2.https://blog.csdn.net/qiu ...
随机推荐
- Socket 简易静态服务器 WPF MVVM模式(三)
ViewModels类 这个类其实就是个大杂烩,什么都可以用 这个类没有什么东西,最多的就是写一下xaml页面的逻辑控制,开启关闭监听 using System; using System.Colle ...
- Kotlin when 流程判断
如果学过C或者java C#等语言. 一定熟悉SWITCH这个流程判断 但是在kotlin中却没有这个.而是 使用了When来代替. 当什么时候. 下面我觉一个简单的例子: import java.u ...
- 洛谷P2756 飞行员配对方案问题(二分图匹配)
传送门 一个基础的二分图匹配(虽然今天才学会) 因为不会匈牙利算法只好用网络流做 先新建一个超级源和超级汇,源往所有左边的点连边,所有右边的点往汇连边 然后跑一边最大流就好了 顺便记录一下匹配到谁就好 ...
- Samba服务为例、简单了解
先.关掉SElinux.防火墙. ---------------------------- 安装rpm包(主): samba-3.6.9-164.el6.x86_64.rpm 启动检测:samba服务 ...
- Python变量类型的强制转换
当我们需要对数据的类型转换时,只需要将数据类型作为函数名即可. 下面给出的函数可以执行数据类型之间的转换,函数返回一个新的对象,表示转换的值 函数格式 使用示例 描述 int(x [,base]) i ...
- SDUT OJ 顺序表应用5:有序顺序表归并
顺序表应用5:有序顺序表归并 Time Limit: 100 ms Memory Limit: 880 KiB Submit Statistic Discuss Problem Description ...
- js new关键字 和 this详解
构造函数 ,是一种特殊的函数.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中. 构造函数用于创建一类对象,首字母要大写. 构造函数要和new一起 ...
- python基础01—基础数据类型
数据类型 单位换算 最小的单位为bit,表示一个二进制的0或1,一般使用小写的b表示 存储的最小单位为字节(Byte),1B = 8b 1024B = 1KB 1024KB = 1MB 1024MB ...
- svn 命令
svn基本的操作流程就是: 你刚刚进入一个新的公司,让你接手一个正在进行的项目,你打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一 ...
- python之文件读写(1)
1. 从文件读取数据 关于对文件的操作,使用open(filename, mode),打开文件.与之对应的,close()用来关闭文件.对文件操作完毕切记要关闭. open函数参数: mode 参数有 ...