(进阶篇)Redis6.2.0 集群 主从复制_故障解决_03

文章目录

          • 一、 主从数据一致性
            • 1. 主多从少
            • 2. 主少从多
            • 3. 知识点补充
          • 二、 数据延迟
            • 2.1. 数据延迟因素
            • 2.2. 解决方案
          • 三、 脏数据
            • 3.1. 脏数据产生的场景
            • 3.2. 解决方案
          • 四、 数据安全性
            • 4.1. 场景
            • 4.2. 解决方案
          • 五、 规避全量复制
            • 5.1. 低峰时段
            • 5.2. 主节点变更
            • 5.3. 增大复制缓冲区
          • 六、 规避复制风暴
            • 5.1. 单主节点
            • 5.2. 单机多主

一、 主从数据一致性
1. 主多从少

主从网络延迟时,主多从少情况下,进行部分重同步。
场景简述:主多从少就是在网络延迟的情况下,从服务器尚未把主服务器的数据全部复制过来。
解决方案:
第一种:这时,我们可以等延迟结束之后,让从服务器进行部分重同步,就是我们说增量复制。
第二种:如果比较着急,向让他立刻执行重同步,需要任务干预。在从节点输入

psync 主节点master的run_id 追加需要复制的起始偏移量offset

就可以实现部分重同步
第三种:人为断开让从节点和主节点重新建立连接,也会触发部分重同步。

2. 主少从多

主少从多情况下,进行全量复制。
场景简述(主少从多):这种情况是从服务器开启了写的操作导致的,也就是我们的从服务器是读写模式,当从从服务器写入,就会导致主从不一致。
解决方案:
把从服务器数据清空,让从服务器和主服务器重新建立连接,进行去哪量数据复制即可。

3. 知识点补充

在redis2.8版本之前,如果从节点和主节点断开重新连接,从节点就会全量复制,这无疑是一个降低性能的问题。
为了解决这个问题,redis在2.8版本之后,添加了一个特性;我们主从断开重连的时候,可以进行一个逻辑判断处理,来判断从节点进行全量复制还是增量复制?
其实就是我们的主服务器在内存中为每一个从服务器都维护了一个同步日志和同步标识,这三个同步日志就是backlog ,这个同步标识就是offset,每个从服务器在跟主服务器进行同步的时候,会携带同步标识和上次同步的位置,这样就会判断出这个复制,要做全量复制还是增量复制。

二、 数据延迟
2.1. 数据延迟因素

数据延迟,根据那些配置或者属性决定的。在info replication返回的信息中有一个偏移量,其实,就是根据这个偏移量来决定当前数据的一个健康状态,数据是否有延迟,我们的主节点在写入命令的时候,比如:我写入3000字节的一个偏移量,此时,我们的从节点只复制了1000,他们的差值比较大的时候,就说明数据延迟就很高了。

2.2. 解决方案

1.编写外部程序监听主从节点的复制偏移量,延迟较大时发出报警或者通知客户端,切换到主节点或者其他节点。
2设置从节点slave-serve-stale-data为no 除INFO SLAVEOF命令之外的任何请求都会返回一个错误“SYNC with master in progress”

三、 脏数据
3.1. 脏数据产生的场景
  • 惰性:现在有一个key已经过期了,现在没有人活着客户端访问,就不会删除这个过期的key;在访问的时候在判断这个key是否过期,过期了就会删除,导致一个过期的key如果不被访问就会永远存在内存中。

  • 定时:解决惰性缺点,内部有一个定时任务,隔一段时间就会判断一批key是否过期,过期了就删除掉。

  • 主动删除:当前数据存储超过了redia的存储上限,然后,触发主动删除,正是因为rerdis删除机智的原因导致有脏数据的产生。
    从节点可写导致的,从节点一般都是只读模式,如果你开启了读写模式,这个数据从从节点误写入,可能导致产生脏数据。

3.2. 解决方案
  • 忽略:比如:12306查询票,双11查询库存,当你去查询这些信息的时候,我并没有去做一个写操作,这样业务场景允许你出现一定的的错误,有一定的容错。我么可以选择忽略。
  • 强制读主:当我们买一张车票,下单呢?秒杀抢购这个商品,这个时候数据一定要是准确的,我们可以采用强制读主的方式,从节点间接变为了备份服务器(某个业务)
  • 从节点只读:规避从节点写入脏数据
    目前redis6.x之后,读取数据之前检查键过期时间来决定是否返回数据
四、 数据安全性
4.1. 场景

关闭主节点持久化会提升性能,同时会带来复制的安全性问题。
在这里插入图片描述

4.2. 解决方案

主节点不自动重启,不是用shell脚本手段监控主节点自动触发重启

五、 规避全量复制
5.1. 低峰时段

第一次全量复制解决方案:低峰时段挂载slave节点,比如:晚上12点

5.2. 主节点变更

选举slave为主节点

待补充

5.3. 增大复制缓冲区
六、 规避复制风暴
5.1. 单主节点

单主节点复制风暴:主节点重启,从节点全量复制
解决方案:
选举slave为主节点、树状复制结构

5.2. 单机多主

单机多主复制风暴:一台机器,多个主节点(树状复制架构)
解决方案:把主节点分散在多台机器上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以“基”取胜:青立方超融合易捷版,助力企业“极简”上云

2020年春天,以云计算、5G、人工智能为代表的“新基建”蔚然成风,不仅助力中国产业智能化、信息化进入加速推进的快车道,促使全产业链迈开高质量发展的新步伐。更是面向长远,构筑数字经济创新发展之基。可以说,没有任何…

从零开始入门 K8s| K8s 的应用编排与管理

一、资源元信息 1. Kubernetes 资源对象 我们知道,Kubernetes 的资源对象组成:主要包括了 Spec、Status 两部分。其中 Spec 部分用来描述期望的状态,Status 部分用来描述观测到的状态。 今天我们将为大家介绍 K8s 的另外一个部分&#xff0c…

创建对象内存分析

创建对象内存分析 package com.oop.demo03;public class Pet {public String name;public int age;public void shout(){System.out.println("叫了一声");}}/* //一个项目应该这存在一个main方法 public class Application {public static void main(String[] args) …

AliOS Things 维测典型案例分析 —— 内存泄漏

维测典型案例分析1 —— 内存泄漏 在系统运行的过程中,内存泄漏是较为常见但是很难复现的现象,一般的内存泄漏点都是比较隐蔽的,每次几十个字节的泄漏,往往需要压测很久才能复现问题。本节案例分析,我们从一个已经压测…

(进阶篇)Redis6.2.0 集群 哨兵模式_搭建_01

文章目录一、概念架构简述1. Redis Sentinel简述2. Redis Sentinel优点3. Redis Sentinel缺点二、redis 3节点2.1. 101节点配置2.2. 102节点配置2.3. 103节点配置三、哨兵搭建实现3.1. 101节点配置3.2. 102节点配置3.3. 103节点配置3.4. 启动哨兵3.5. sentinel 监控3.6. 哨兵验…

服务器软件大扫盲!

来源 | 沉默王二责编 | Carol头图 | CSDN下载自视觉中国先说一句哈,自从在 B 站开始刷视频后,我就觉得要学的内容实在是太多了。这篇“服务器软件大扫盲”就是我看了羊哥的一期视频后有感而发的,比如说 Web 服务器、HTTP 服务器、应用服务器这…

Flutter浪潮下的音视频研发探索

导读:本文来自 LiveVideoStack 线上分享第三季,第十期阿里巴巴闲鱼事业部无线开发专家陈炉军带来的分享内容,针对闲鱼APP在当下流行的跨平台框架Flutter的大规模实践,介绍其在音视频领域碰到的一些困难以及解决方案。 大家好&…

(进阶篇)Redis6.2.0 集群 哨兵模式_哨兵工作原理_02

文章目录1. 主从复制哨兵架构图2. 定时任务3. 主观下线4. 客观下线5. 仲裁6. 哨兵工作原理1. 主从复制哨兵架构图 2. 定时任务 Sentinel内部有3个定时任务分别是: 每1秒每个Sentinel对其他Sentienl和Redis节点执行 PING 操作(监控)每2秒每个Sentinel通过Master节点…

10年+,阿里沉淀出怎样的搜索引擎?

阿里妹导读:搜索引擎是阿里的10年沉淀,具有很高的技术/业务/商业价值。1688很多场景都借助了搜索中台的能力,基于此,以1688主搜为例介绍搜索全链路知识点,希望对你有所借鉴,有所启发。 一、整体架构 搜索…

年薪15W的程序员因为掌握这个技能,薪资翻倍!

在这个IT系统动辄就是上亿流量的时代,java作为大数据时代应用最广泛的语言,诞生了一批又一批的技术。一些独角兽公司以及腾讯、阿里、百度、网易等知名大厂对java人才的需求量连年升级,优秀程序员能轻松达到30w的水平,但写此同时&…

语雀携手Teambition,玩转项目协作与知识管理

在数字化转型的大浪潮中,大量企业都有项目协作与知识管理诉求。Teambition 是一款优秀的项目协作产品,深受众多企业的青睐。语雀则是来自阿里巴巴的一款新品,是知识管理领域里冉冉升起的新星。今年夏天,语雀携手Teambition&#x…

支付宝小程序“开闸放粮”,亿级流量扶持中小商家!

街边小店也有机会登上支付宝首页推荐位了! 9月17日消息,在支付宝开放日活动中,支付宝宣布向小程序商家开放包括主搜热搜榜、首页腰封、首页惠支付频道、首页生活服务频道、花呗频道、会员频道等六大中心化入口,商家通过引导用户扫…

idea 编译Java heap space 内存溢出

解决方案 根据自身的实际情况设置参数大小,我调整到4096就好使了

避坑!使用 Kubernetes 最易犯的 10 个错误

Kubernetes 作为大规模企业级应用容器编排的首推工具,其为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,本文作者 Marek Bartik 深入分享了 K8s 的避坑宝典,相信会对开发者们大有裨益。作者 | Marek Bartik&…

当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题?

本文主要介绍阿里巴巴在大规模生产环境中落地 Kubernetes 的过程中,在集群规模上遇到的典型问题以及对应的解决方案,内容包含对 etcd、kube-apiserver、kube-controller 的若干性能及稳定性增强,这些关键的增强是阿里巴巴内部上万节点的 Kube…

来了!云栖大会都能看到什么?

盼望着 盼望着 一年一度科技盛宴2019杭州云栖大会 来了! 欢迎你 来自远方的开发者们 今天小云为你偷偷潜入会场 带来一大波“谍照” 一起看云栖 在这儿,感受科技带来的巨大惊喜 平头哥放大招! 人工智能整体性突破! 更有三位男神…

美国 AI 博士一针见血:Python 这样学最容易成为高手!

我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式&#xff0…

【物联网开发实战】- 设备上云方案详解?

【物联网开发实战】- 如何让设备上云? 物联网开发过程中遇到的第一个棘手问题就是:如何让设备连接上云? 我们以智能洗衣机为例,至少包含:温度/水位等传感器,主控MCU(Microcontroller Unit&…

bash: mysqldump: command not found

文章目录一、问题分析定位二、解决方案2.1. 解决方案12.2. 解决方案22.3. 解决方案3一、问题分析定位 由于mysqldump在mysql/bin目录下面,直接执行此命令,环境变量中没有,找不到的情况 二、解决方案 2.1. 解决方案1 # 进入到mysql的bin目…

深入解析 Kubebuilder:让编写 CRD 变得更简单

导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubernetes 高级玩家的必备技能,本文将介绍 CRD 和 Controller 的概念,并对 CRD 编写框架 Kubebuilder 进行深入…