主从模式:

在10.3.13.213 主节点, 10.3.2.33 从节点。mongodb 安装路径均为:/usr/local/server/mongodb

参考文章:http://www.lanceyan.com/tech/mongodb/mongodb_cluster_1.html

主从模式没有继续测试下去,在下载的最新的mongodb安装包中,已经不支持主从复制了:

MongoDB 4.0删除了对主从复制的支持。在升级到MongoDB 4.0之前,如果部署使用主从复制,则必须升级到副本集

一般情况下,配置一个主节点,一个或多个从节点,主节点用于写入数据,从节点用于读取数据(也是可以配置写的,默认只读),实现读写分离。

配置从节点从主节点同步数据,默认马上同步,可以设置时间(slavedelay)。

source = 10.3.13.213:27017 配置主节点的ip与端口,only = abc也可以配置只同步某个数据库

问题:

主节点挂了,不能自动切换,得手动切换。(高可用性不好)

主节点的写压力没有减轻。

从节点的数据都是从主节点同步过来的,对从节点压力过大

不能自动扩展(扩展性不好)

副本集模式

参考:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html\

副本集的一些概念:

各个节点之间有一个心跳机制,检测是否有节点挂了,若出现主节点挂了则从从节点中选出一个新的主节点。

环境搭建:

1. 10.3.13.213 副本集主节点,10.3.2.33 副本集副本节点,10.3.2.34  副本集副本节点

2. 每个节点上依次运行:./bin/mongod --config /usr/local/server/mongodb/mongodb.conf

mongodb.conf的内容:

3.  在任意一个节点上面:./bin/mongo 任意一个节点上运行脚本

4.  use admin  转到admin数据库(自带的)

5. 初始化副本集配置

config = { _id:"repset", members:[

... {_id:0,host:"10.3.13.213:27017"},

... {_id:1,host:"10.3.2.33:27017"},

... {_id:2,host:"10.3.2.34:27017"}]

... }

> rs.initiate(config);

config里面的members里面的配置解释:

priority:1  members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点

Secondary-Only:不能成为primary节点,只能作为secondary副本节点,防止一些性能不高的节点成为主节点。

Hidden:这类节点是不能够被客户端制定IP引用,也不能被设置为主节点,但是可以投票,一般用于备份数据。

Delayed:可以指定一个时间延迟从primary节点同步数据。主要用于备份数据,如果实时同步,误删除数据马上同步到从节点,恢复又恢复不了。

Non-Voting:没有选举权的secondary节点,纯粹的备份数据节点

查看集群节点的状态:

在mogo脚本下运行:rs.status() 查看返回结果。

主节点写入的数据会自动复制到副本节点

在主节点 10.3.2.33上运行:

repset:PRIMARY> use test

repset:PRIMARY> db.testcc.insert("test1","test11111")

在副本节点10.3.13.213上查看

因为mongodb默认从主节点读和写数据,所以需要设置从节点的可读

repset:SECONDARY> db.getMongo().setSlaveOK()

repset:SECONDARY> db.testcc.find()

返回结果:{ "_id" : ObjectId("5c048ff317f3022be4577b9f"), "test1" : "test11111" }

副本集的故障转移 :

若一个节点挂掉了(即便是主节点),数据库还可以继续使用,数据不会丢失。

若主节点挂掉了,就从原来的从节点中自动投票选出主节点。

将主节点10.3.2.33的进程kill掉。之后 repset:PRIMARY> rs.status() 发现,在原来的两个副本节点中一个变成了主节点。

将原来挂掉的那个主节点重新跑起来后,发现它就变成了副节点了。

读写分离:

为了减轻主节点的读写压力,可以设置读时只从副节点进行读参见:https://www.cnblogs.com/yanliang12138/p/10012649.html

仲裁节点:

仲裁节点不负责存储数据,只负责故障转移时的群体投票

设置仲裁节点:在初始化配置时,members中设置{_id:2,host:'10.3.2.34:27017',arbiterOnly:true}

这样设置好这个仲裁节点后,这个节点没有数据存储到本地,但是可以读取到副本集的相关信息。

参考:https://www.cnblogs.com/callmecool/p/4662876.html

https://yq.aliyun.com/wenji/263333

bully算法,竞选出主节点

在主节点挂掉之后,需要在剩下的从节点中选出一个新的主节点

具体参考:http://www.lanceyan.com/tech/mongodb_repset2.html

分片模式:

MongoDB_副本集集群模式的更多相关文章

  1. mongodb之集群模式

    前言 数据量大了或者并发量上来了,单机肯定是抗不住的,这个时候要开始考虑使用集群了.mongodb目前为止支持三种集群模式:主从集群,副本集集群,分片集群. 主从集群 特性 1. 一主多从2. 主负责 ...

  2. RabbitMQ学习之集群模式

    由于RabbitMQ是用erlang开发的,RabbitMQ完全依赖Erlang的Cluster,因为erlang天生就是一门分布式语言,集群非常方便,但其本身并不支持负载均衡.Erlang的集群中各 ...

  3. Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析

    Redis 的几种常见使用方式包括: 单机模式 主从模式 哨兵模式(sentinel) 集群模式(cluster) 第三方模式 单机模式 Redis 单副本,采用单个 Redis 节点部署架构,没有备 ...

  4. Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  5. Redis学习笔记~conf自主集群模式

    回到目录 Redis自主提供了集群模式,当然也只是比较简单的读写分离模式,或者叫主从模式,它在各个redis服务端自己做数据同步机制,当然就是将主服务端的信息同步到各个slave服务器上,在客户端集成 ...

  6. 就publish/subscribe功能看redis集群模式下的队列技术(一)

    Redis 简介 Redis 是完全开源免费的,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中 ...

  7. 22.mongodb副本集集群

    软件版本64位:     $ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.0.tgz     mongo ...

  8. Greenplum源码编译安装(单机及集群模式)完全攻略

    公司有个项目需要安装greenplum数据库,让我这个gp小白很是受伤,在网上各种搜,结果找到的都是TMD坑货帖子,但是经过4日苦战,总算是把greenplum的安装弄了个明白,单机及集群模式都部署成 ...

  9. 在集群环境中使用 EhCache 缓存系统|RMI 集群模式

    RMI 是 Java 的一种远程方法调用技术,是一种点对点的基于 Java 对象的通讯方式.EhCache 从 1.2 版本开始就支持 RMI 方式的缓存集群.在集群环境中 EhCache 所有缓存对 ...

  10. Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续)

    Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续) 今天延续昨天的内容,主要对为什么一个处理会分解成多个Job执行进行解析. 让我们跟踪下Job调用过 ...

随机推荐

  1. HDU-6035 Colorful Tree(树形DP) 2017多校第一场

    题意:给出一棵树,树上的每个节点都有一个颜色,定义一种值为两点之间路径中不同颜色的个数,然后一棵树有n*(n-1)/2条 路径,求所有的路径的值加起来是多少. 思路:比赛的时候感觉是树形DP,但是脑袋 ...

  2. layui模块规范

    刚入公司不久,就开始做项目了,最后还是选择用layui来做前端的页面,一来是可以自适应,二来是用框架比较方便,简洁. 先看下Layui的介绍: layui 是一款采用自身模块规范编写的情怀级前端UI框 ...

  3. python基础一 day10(1)

    要背的:

  4. Delphi 中内存映射对于大文件的使用

    这篇文章主要介绍了Delphi 中内存映射对于大文件的使用的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下 Delphi 中内存映射对于大文件的使用 平时很少使用大文件的内存映射,碰巧遇到了 ...

  5. WORD与DWORD

    在看C/C++的书或者试题时,有时会见到利用word或dword定义的变量,第一次看到的时候并不知其是什么,更不用说word或dword占几个字节了.幸好在VC安装文件夹下有相关的定义.如C:\Pro ...

  6. React初识整理(五)--Redux和Flux(解决状态传递问题)

    Flux 1.引入:在React的应⽤中,状态管理是⼀个⾮常重要的⼯作.我们不会直接对DOM节点进⾏操作,⽽是通过将数据设置给state,由state来同步UI,这种⽅式有个潜在的问题,每个组件都有独 ...

  7. [九省联考2018] IIIDX 线段树+贪心

    题目: 给出 k 和 n 个数,构造一个序列使得 d[i]>=d[i/k] ,并且字典序最大. 分析: 听说,当年省选的时候,这道题挡住了大批的高手,看上去十分简单,实际上那道弯段时间内是转不过 ...

  8. GIMP暗黑诱惑,部分彩色效果制作

    在一些图形处理中经常会用到高逼格的部分彩色,其他部分黑白的效果,今天我就简单记录一下如何操作. 1.选区,先选择要突出的选区,可以用多种方法,钢笔,套绳,小剪刀等等: 2.把选择的区域稍稍调整亮一点: ...

  9. Lex与Yacc学习(四)之Lex规范

    Lex规范的结构 lex程序由三部分组成:定义段.规则段和用户子例程序段 ...定义段... %% ...规则段... %% ...用户子例程序段... 这些部分由以两个百分号组成的行分隔开.尽管某一 ...

  10. 使用VS2015编写驱动时出现的部分错误以及解决方法

    前几日在github上下载了一个Windows驱动的demo,原本想着直接下载下来打开解决方案就可以用,没想到一编译,出现了奇奇怪怪的Error,部分Error网上也没什么好的解决办法,对我这个从未深 ...