含义

可用性

可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。

可靠性

可靠性一般指产品可靠性,是元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性。
光看定义比较抽象,下面看一个具体的例子。

如果某个系统在每小时崩溃1ms,那么它的可用性就超过99.9999%,但是它还是高度不可靠。与之类似,如果一个系统从来不崩溃,但是每年要停机两星期,那么它是高度可靠的,但是可用性只有96%。

可用性被定义为系统的一个属性,它说明系统已准备好,马上就可以使用。换句话说,高度可用的系统在任何给定的时刻都能及时地工作。
可靠性是指系统可以无故障地持续运行,是一个持续的状态。与可用性相反,可靠性是根据时间段而不是任何时刻来进行定义的。

1 WHAT - 什么是可用性?

定义可用性,可以先定义什么是不可用。
以网站为例,需要经历若干环节,网站的页面才能呈现在最终的用户面前;而其中的任何一个环节出现了故障,都可能会导致网站的页面不可访问,也就是出现了网站不可用的情况。
我们可以利用百分比来对网站可用性进行度量:

网站不可用时间=完成故障修复的时间点 - 故障发现的时间点
网站年度可用时间=年度总时间 - 网站不可用时间
网站年度可用性=(网站年度可用时间/年度总时间) x 100%

99.99%可用性如何计算?

举例:一些知名大型网站的可用性可达到99.99%(俗称4个9),我们可以算一下一年下来留给处理故障的时间有多少?
年度总时间=365 * 24 * 60=525600分钟
网站不可用时间=525600 * (1-99.99%)=52.56分钟
也就是,如果网站要达到4个9的可用性,一年下来网站不可用时间最多53分钟(也就是不足1个小时)。

可见,高可用性就是技术实力的象征,高可用性就是竞争力。

2 WHY - 为什么会出现不可用?

  1. 硬件故障。网站多运行在普通的商用服务器,而这些服务器本身就不具备高可用性,再加之网站系统背后有数量众多服务器,那么一定时间内服务器宕机是大概率事件,直接导致部署在该服务器上的服务受影响。
  2. 软件BUG或网站更新升级发布。BUG不能消灭,只能减少;上线后的系统在运行过程中,难免会出现故障,而这些故障同样直接导致某些网站服务不可用;此外,网站更新升级发布也会引起相对较频繁的服务器宕机。
  3. 不可抗拒力。如地震、水灾、战争等。

3 HOW - 如何做到高可用

核心思想

网站高可用的主要技术手段是服务与数据的冗余备份失效转移。同一服务组件部署在多台服务器上;数据存储在多台服务器上互相备份。通过上述技术手段,当任何一台服务器宕机或出现各种不可预期的问题时,就将相应的服务切换到其他可用的服务器上,不影响系统的整体可用性,也不会导致数据丢失。
从架构角度看可用性:当前网站系统多采用经典的分层模型,从上到下为:应用层、服务层与数据层

应用层主要实现业务逻辑处理;
服务层提供可复用的服务;
数据层负责数据读写;

在部署架构上常采用应用和数据分离部署,应用会部署到不同服务器上,这些服务器被称为应用层的服务器;
这些可复用的服务也会各自部署在不同服务器上,称为服务层的服务器;
而各类数据库系统、文件柜等数据则部署在数据层的服务器。
硬件故障方面引起不可用的技术解决措施:

(1)应用服务器。可通过负载均衡设备将多个应用服务器构建为集群对外提供服务(前提是这些服务需要设计为无状态,即应用服务器不保存业务的上下文信息,而仅根据每次请求提交的数据进行业务逻辑的操作响应),当均衡设备通过心跳检测手段检测到应用服务器不可用时,则将其从集群中移除,并将请求切换到其他可用的应用服务上。

(2)服务层服务器。这些服务器被应用层通过分布式服务框架(如Dubbo)访问,分布式服务框架可在应用层客户端程序中实现软件负载均衡,并通过服务注册中心提供服务的服务器进行心跳检测,当发现有服务器不可用时,立即通知客户端程序修改服务列表,同时移除响应的服务器。

(3)数据服务器。需要在数据写入时进行数据同步复制,将数据写入多台服务器上,实现数据冗余备份;当数据服务器宕机时,应用程序将访问切换到有备份数据的服务器上。

软件方面引起不可用的技术解决措施:通过软件开发过程进行质量保证。通过预发布验证、严格测试、灰度发布等手段,尽量减少上线服务的故障。

分布式系统可用性和可靠性的区别,可用性如何计算,以及如何做到高可用和高可靠相关推荐

  1. 微信开源PhxQueue:高可用、高可靠、高性能的分布式队列**

    消息队列概述 消息队列作为成熟的异步通信模式,对比常用的同步通信模式,有如下优势: 解耦:防止引入过多的 API 给系统的稳定性带来风险:调用方使用不当会给被调用方系统造成压力,被调用方处理不当会降低 ...

  2. 分布式系统设计之高性能、高可用与高并发

    概述 在现代的互联网应用设计当中,通常会提到应用系统需要达到高性能,高可用和高并发这三"高"目标,其中这三个概念既有联系又有区别. 高性能 首先高性能是指应用系统对于客户端请求的处 ...

  3. 高并发、高可用、高负载、分布式架构

    微博短视频百万级高可用.高并发架构如何设计? 抖音微博等短视频千万级高可用.高并发架构如何设计? 从零到百亿级,揭秘科大讯飞广告平台架构演进之路 苏宁Spring Cloud微服务脚手架工具实践分享 ...

  4. 分布式架构高可用与高并发那些在工作中常用到的那些变态应用

    目录 反向代理服务 应用服务 数据库和memcached服务 三层架构的可伸缩性 反向代理服务 上图展示了一个典型的三层架构的高性能 Web 应用.这种成熟的架构多年以来已被广泛部署于包括 Googl ...

  5. phxqueue java_微信开源PhxQueue:高可用、高可靠、高性能的分布式队列的几个问题...

    1.测试结果表格里面的kafka同步刷盘和异步刷盘,我认为不准确,会误导用户,因为同步刷盘意味着log.flush.interval.messages=1.而我的理解是文中想表达的是kafka消息同步 ...

  6. 分布式和集群区别与分布式的应用场景

    分布式是指将一个业务拆分不同的子业务,分布在不同的机器上执行,集群是指多台服务器集中在一起,实现同一业务,可以视为一台计算机,一个云计算平台,就是通过一套软件系统把分布式部署的资源集中调度使用.要应对 ...

  7. 偏移出来的数据不准_独家解读!京东高可用分布式流数据存储的架构设计

    作者 | 李玥 编辑 | Vincent AI 前线导读:每天,超过千亿交易相关的数据在京东数千个系统中高速流转,确保数据的高可靠.高可用.一致性对京东的消息中间件系统是一项艰巨的技术挑战.为高性能. ...

  8. 独家解读!京东高可用分布式流数据存储的架构设计

    作者 | 李玥 编辑 | Vincent 每天,超过千亿交易相关的数据在京东数千个系统中高速流转,确保数据的高可靠.高可用.一致性对京东的消息中间件系统是一项艰巨的技术挑战.为高性能.高可用.高可靠的 ...

  9. 分布式技术与实战第七课 高并发下高可用的熔断、降级、限流和负载均衡、监控以及统一的日志系统

    第39讲:从双十一看高可用的保障方式 从这一课时开始,专栏内容进入最后一个模块,即分布式高可用系列,这部分的内容,我将以电商大促为背景,讲解系统限流.降级熔断.负载均衡.稳定性指标.系统监控和日志系统 ...

最新文章

  1. [deviceone开发]-一个很炫的手势动画示例
  2. Lodop中特殊符号¥打印设计和预览不同
  3. 《Zabbix-ICMP ping监控添加方法》-7
  4. 利用非递归方法实现二叉树的先序遍历
  5. Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
  6. centos mysql 启动_MYSQL在centos上首次启动
  7. Java LocalDate类| 带示例的getDayOfYear()方法
  8. C#性能优化篇 - 基于索引器封装EPList
  9. IDEA 编译构建等工程配置
  10. $.ajax的回调function中的this与 element-ui的this.$alert冲突问题解决
  11. 两种方法身份证读卡器对接,实现扫描身份证读取身份证信息功能。
  12. Android定位功能实现
  13. hsql导入mysql_转-jira从HSQL迁移到MYSQL
  14. sklearn中多种编码方式——category_encoders(one-hot多种用法)
  15. 黄金分割圆怎么画matlab,黄金分割线的画法和使用方法
  16. 【人工智能】Google I/O 2023:让 AI 对每个人都更有帮助 Making AI more helpful for everyone
  17. 使用ffmpeg实现图像格式转换
  18. [传感器][算法][python]根据IMU九轴加速度传感器数据序列,判断是否有触碰或翻转
  19. Nginx主要用来干什么
  20. 普通话测试第四题评分标准_普通话等级考试《评分细则》.docx

热门文章

  1. alpha测试与beta测试的区别
  2. JDBC的URL详解
  3. 文件下载到本地的几种方法
  4. Android手动控制软键盘的开启和关闭,判断软键盘是否显示;
  5. [知乎]关于WindowsXPx64SP2系统的说明
  6. hackmyvm-bunny walkthrough
  7. beyond compare 2 中文乱码问题
  8. 野蛮的没落:蒙古帝国的启示
  9. 钱多多第二阶段冲刺04
  10. SEO快排是什么?怎样实现快排?