IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> [Mongodb 5.0]Replica Set副本集核心概念 -> 正文阅读

[大数据][Mongodb 5.0]Replica Set副本集核心概念

  • Primary
    副本集中的主节点,副本集中只能通过Primary写入数据
  • Secondary
    副本集中的从节点,主要备份Primary节点的数据。
    ?

    Secondary通过Primary的oplog将数据复制到自己上面数据只能先写到Primary->Secondary同步到自己身上->读数据既可以从Primary也可以从Secondary,但是默认只能从Primary读,可以设置【Read Preference】实现从Secondary也可以读数据如果Primary不可用了,便会从其他的Secondary中选出一个作为Primary(技术是Secondary而不是Arbiter,注意两者区别,Arbiter只用于进行投票选举)

    关于Secondary的一些特殊配置
    1.可以设置Secondary不成为Primary【一般方法就是设置Priority为 0】(参考Priority 0 Replica Set Members.)
    2.可以设置Secondary不提供对外读数据的功能,这样的目的主要是为了让这个Secondary只负责保存数据用(参考 Hidden Replica Set Members)
    3.可以将将其作为历史备份使用,以防止其他节点误删除数据库的现象

  • Arbiter
    在副本集中如果没有Arbiter,那么只有Primary和Secondary的情况下,当Primary不可用时,就可以自动从Secondary中选举出一个作为Primary,但是会出现无法不确定谁来最为Primary的情况,
    比如每个Secondary都有2票,就不能确定到底谁来成为Primary了,这时就用到了Arbiter,他把自己手上的那一票给哪个Secondary,哪个Secondary就可以成为Primary。由此看出了Arbiter唯一的作用
    就是头上这一票(一个Arbiter只有一票),除此之外没有其他的作用,所以在副本集中Arbiter不能存数据,只能投票。
    知识点:
    1.如何添加一个Arbiter?
    2. Arbiter带来的问题点?Arbiter不存数据,但是会占用一个节点的位置。那么在writer:majority的时候,会影响Primary的效率问题。所以不要在一个副本集设置多个Arbiter

  • Priority 0 Replica Set Members
    表示在副本集中它是一个不能成为Primary并且不能参与选举的节点。但是他可以做下面两件事情:
    1.他只能将Primary中的数据备份到自己这里了
    2.他虽然不能进行选举,但是他可以进行投票

    一个Secondary如果Priority 0了,那么这个Secondary节点就只能做以下的事情:
    1.备份Primary上的数据
    2.可以从他上面读数据
    3.可以进行投票

    使用场景:
    一般如果这个节点离着其他节点很远,容易出现延迟的情况下,就将它设置为Priority 0.
    有些时候,无法后期添加节点,那么前期可以先将这个节点加上然后Priority 0,先作为备用,后期如果有那个节点不可用时,可以直接将其Priority 1,来接替不可用的节点。

  • Hidden Replica Set Members

    隐藏副本集中的节点,隐藏后,这样的节点只能备份数据,不能参与选举Primary,但是可以进行投票,另外这样的节点是不能通过客户端设置读属性(就是可以从Secondary上读数据)。
    db.hello()方法不会显示出Hidden的节点。

    场景:
    1.延迟大的节点,可以让他变为Hidden

  • Delayed Replica Set Members

    专门用作延迟备份Primary中数据的节点,所谓延迟指的是在一定时间后,再回复Primary自己已经完成了备份操作
    场景:
    1.10点要版本更新,那么为了10点到11点这段时间mongodb中存入错误的数据,可以设置一个Delayed Replica Set Member,让他延迟1个小时再去备份数据,也就是让他11点之后再去讲Primary的数据
    同步到自己身上。这样玩意10点到11点之间数据库出现问题了,就可以用这个延迟节点上的数据进行数据恢复用(这个数据恢复就是官网的"rolling backup" or a running "historical")。

    要成为延时节点,必须满足下面2个条件
    1. Must be priority 0 members
    2. Must be hidden members.
    3. 必须是一个可以投票的节点

  • Replica Set Oplog
    就是一个文件,里面记录了Primary上所有对数据库的CURD操作语句
    oplog的保存期是以小时为单位的。当出现下面两种情况,会自动删除oplog中的内容:
    1. 文件大小超过了设置的最多size
    2. 达到了设置的保留时间

  • Write Concern for Replica Sets

    Write Concern主要用于Primary在执行写操作的时候,与其他节点(可以投票的节点)进行确认的一个事情(有点类似于tcp中的三次握手的ack操作)。就是指副本集中有多少个节点反馈你已成功写入的信息,然后就可以继续下面操作的一种策略。例如常见的w:majority,那么例如5个节点中,有超过2个节点都反馈给你以已成功写入数据
    那么你就可以继续下面的操作了,否则你会一直堵塞。

    Write Concern中的journal是跟什么时候持久化有关
    j,该参数表示是否写操作要进行journal持久化之后才向用户确认;
    {j: true} 要求primary写操作进行了journal持久化之后才向用户确认;
    {j: false} 要求写操作已经在journal缓存中即可向用户确认;journal后续会将持久化到磁盘,默认是100ms;

    通过官网中的例子,来理解这个概念:
    当通过app或者client端执行了一个写操作时(insert,update等),Primary会先堵塞住,然后等待接收其他节点的确认反馈,看其他节点是否同时得到了 client端要进行一个写操作的消息。
    如果我们用的是w:majority,那么只要大多数的节点讲接收到的写操作的确认信息反馈给Primay后,Primary就可以继续执行后面的操作了。

  • Read preference
    用于改变从什么节点读取数据,默认是从Primary上读,通过这个设置可以改为从Secondary上读【关于具体的选项参考https://www.mongodb.com/docs/manual/core/read-preference/】

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:30:44  更:2022-05-11 16:31:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:00:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码