了解高可用

news2024/11/16 7:43:45

  图片来自网络


高可用定义

“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。 设计系统的可用性,最重要的是满足用户的需求。系统的失败只有当其导致服务的失效性足以影响到系统用户的需求时才会影响其可用性的指标。

工作方式

1. 主备复制

主备复制中的备表示备份,主机负责读写操作, 备机只负责数据备份,不负责读写

1)主机存储数据,通过复制通道将数据复制到备机

2)客户端访问主机读写数据, 并不直接访问备机

3)主机异常不能恢复, 人工将备机升级为主机, 然后客户端访问新的主机。同时增加新备机

优点:

  • 对于主机和备机,双方只需要进行数据复制
  • 几乎所有存储系统都提供了主备复制的功能

缺点:

  • 备机仅仅只是用于备份,并没有读写操作,硬件成本有些浪费
  • 主备间延迟比较多,主机又宕机则可能数据丢失
  • 故障后需要人工干预,无法自动恢复

2.主从复制

主从复制中的从意思为随从或者仆从,从承担读的操作;主机负责读写操作,从机只负责读

优点:

  • 主从复制在主机故障时,读操作相关业务不受影响
  • 与主备相比,从机负责提供读操作, 发挥了硬件的性能

缺点

  • 主从复制更加复杂一些,主要体现在客户端需要感知主从关系,并将不同的操作发给不同的机器
  • 主从间数据延迟,会出现主从读取的数据不一致的问题
  • 主从间延迟比较多,主机又宕机则可能数据丢失
  • 故障后需要人工干预,无法自动恢复

3.主备倒换

主备复制和主从复制存在两个共同问题。主机故障后,无法进行写操作;主机无法恢复,需要人工指定新的主机角色。为了解决这两个问题在原有的设计方案基础上增加了“倒换”功能,主备倒换或者主从倒换。让系统自动决定主角色并完成切换。常见的主备倒换架构有三种,互链式,中介式和模拟式

互链式

中介式

优点:

链接更简单。降低了主备机连接管理复杂度

状态角色更简单,只需要简单算法就可以完成决策

MongoDB采用的就是此种方式,虽然中介式架构在状态传递和状态决策上更简单。但如果中介自己宕机了整个系统就进入了双备状态,写相关业务就不可用。因此中介本身又要求高可用。幸运的是开源方案已经有很成熟的解决方案,比如ZooKeeper. 他是 A爬车Hadoop的一个子项目。主要用于来解决分布式应用遇到的数据管理问题。Zookeeper本身就是一个高可用的系统。

4.主主复制

优点:

  • 两台都是主机,不存在倒换概念
  • 客户端无续区分不同角色,随便将读写操作发送给那台都可以

    主主复制架构对数据的设计有严格要求,一般适合临时性可丢失,可覆盖的场景,例如登录产生的session ,用户行为日志,论坛草稿数据等

5.数据集群

衡量高可用

一般公司至少实现2个9,大厂一般要求4个9

级别系统可用性宕机(年)宕机(月)宕机(周)宕机(天)
不可用90%36.5天73小时16.8小时144分钟
基本可用99%87.6小时7.3小时1.68小时14.4分钟
较高可用99.9%8.76小时43.8分钟10.1分钟1.44分钟
高可用99.99%52.56分钟4.38分钟1.01分钟8.64秒
极高可用99.999%5.26分钟26.28秒6.06秒0.86秒

网上资料


上一篇:了解负载均衡


参考资料:《从零开始学架构》

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

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

相关文章

不完美解决谷歌Chrome在设置background cover和fixed属性后,滚动屏幕出现背景图片的拉伸

业务场景: 让元素有背景图. 背景图不随着页面滚动而移动,相对于浏览器窗口固定. 根据屏幕尺寸,背景图自动覆盖式填充,不能有接缝和重复. 元素要有圆角. 通过js入参动态设置背景图. 不便截图,相信各位上面可以看明白了. 复现: css是这样的 .main {width: 90%;background-…

Chat GPT5的主要介绍

Chat GPT-5是一种基于人工智能技术的对话系统,用于进行自然语言处理和对话,以提供更好的服务。 它是由OpenAI公司开发的,是GPT系列的最新版本。 GPT代表着"生成式预训练",因此Chat GPT-5基于神经网络,通过预…

STM32F103RCT6 103RE 103R8 103RB 103C8 103CB 103VE 103VC

这些型号均属于意法半导体(STMicroelectronics)的STM32F103系列微控制器,其特点如下: STM32F103RCT6:512 KB Flash、64 KB RAM,LQFP64封装;STM32F103RE:512 KB Flash、64 KB RAM&am…

webgl-矩阵、旋转、平移、缩放 glMatrix组件

引入新组建glMatrix glMatrix.js /*! fileoverview gl-matrix - High performance matrix and vector operations author Brandon Jones author Colin MacKenzie IV version 3.4.3 Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV. Permission is hereby granted…

JAVA开发运维(关于渗透测试与漏洞修复)

对于C端的网站,H5,小程序或者app都需要进行渗透测试。 渗透测试是模拟真实黑客的攻击手段,对目标网站或主机进行全面的安全评估。 与黑客攻击不同,渗透测试的目的是尽可能多地发现安全漏洞,而真正的黑客只需要找到一种…

TCP与UDP的区别

一、TCP协议 TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,具有下面这些特征 1)面向连接 是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接&#xff0…

浏览器DOM(上)——节点

文档对象模型是用来描述文档,这里的文档,是特指 HTML 文档。同时它又是一个“对象模型”,这意味着它使用的是对象这样的概念来描述 HTML 文档,DOM 也是使用树形的对象模型来描述一个 HTML 文档。 DOM API 大致会包含 4 个部分。 …

【MySQL数据库原理】MySQL 数据库环境变量设置问题完整解决与数据库删除测试

目录 1、环境变量与终端问题2、数据库删除测试1、环境变量与终端问题 在上一篇文章中提到mysql专用终端会失效的问题,通常使用一段时间之后,点击会出现闪退的情况,主要原因是没有配置好环境变量。 因此,要解决上述问题就需要配置环境变量,这样就可以在Windows终端失效m…

域名解析设置方法

域名解析设置都是实时生效的,一般只需几秒即可同步到各地 DNS 上,但各地 DNS 均有缓存机制,解析的最终生效取决于各运营商刷新时间! 一、A记录 ①.主机名必须填写; 常用主机名有:www//*,效果参见上图说明&…

【linux】基于环形队列的生产者消费者模型(信号量)

文章目录一、引入二、信号量2.1 信号量的概念2.2 信号量的PV操作2.3 信号量接口2.3.1 信号量初始化sem_init2.3.2 信号量销毁sem_destroy2.3.3 信号量等待sem_wait(P)2.3.4 信号量发布sem_post(V)三、基于环形队列的生产者消费者模型3.1 引入环形队列3.2 环形队列的访问3.3 代码…

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))一、饿汉模式单例(本身及时线程安全的)二、懒汉模式单例1.懒汉模式第一版,用INSTANCE null判断是否初始化…

2023 年男生还推荐报计算机专业吗?

计算机专业确实是一个非常热门的专业,就业前景也很广阔。 但是,近些年随着各个大学对计算机专业及其相关专业疯狂扩招,而且每年的毕业人口都在增多,行业是根本容纳不下的,就业竞争力度也急剧上升。因此,选…

图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!

马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级。 从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障)…

小白开发微信小程序52--测试小程序

经过前面的50,51两个重要的步骤之后,小程序的前端代码和后端代码终于部署在外网了,回顾这个过程,细节很多,环节很杂,而且麻烦,有这些过程:1)申请域名2)域名备…

Vue本地存储及用法

1.本地存储是什么? 以文件的方式存储在本地,通过把数据存在浏览器中,用户不必每次都向服务器请求 获取同一个信息。在你离线时,使用本地存储的数据而不是向远端服务器上请求 数据就显得非常有用,甚至在先用户也可以从中…

Java语法理论和面经杂疑篇《五.集合框架》

目录 1. 集合框架概述 1.1 数组的特点与弊端 1.2 Java集合框架体系 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 4. Collection子接口1:List 4.1 Li…

【数据分析之道-NumPy(三)】numpy切片与索引

文章目录 专栏导读1、前言2、NumPy数组切片2.1一维数组切片2.2多维数组切片3、NumPy数组索引3.1一维数组索引3.2多维数组索引4、NumPy数组高级索引4.1整数数组索引4.2布尔数组索引4.3数组索引总结专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域…

Linux驱动开发——字符设备(2)

目录 虚拟串口设备驱动 一个驱动支持多个设备 习题 虚拟串口设备驱动 字符设备驱动除了前面搭建好代码的框架外,接下来最重要的就是要实现特定于设备的操作方法,这是驱动的核心和关键所在,是一个驱动区别于其他驱动的本质所在,…

vue:生成二维码 qrcode、vue-qr(二维码中间可带logo)

一、方法一 qrcode qrcode - npm 1.1、安装 yarn add qrcode 1.2、页面引入 import QRCode from qrcode; 1.3、方法里边使用 getQRCodeUrl(){ QRCode.toDataURL(hello world,{color: {dark:"#010599FF",light:"#FFBF60FF"}}).then((url) > {// 获…

【华为OD机试真题】查找树中元素(查找二叉树节点)(javaC++python)100%通过率

查找树中元素 知识点树BFSQ搜索广搜 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 已知树形结构的所有节点信息,现要求根据输入坐标(x,y)找到该节点保存的内容 值;其中: x表示节点所在的层数,根节点位于第0层,根节点的子节点位于第1层,依次类推; y表示节…