新闻详情

软件可用性

小编:时间:2023-07-31 21:16:37   来源:火箭下载站整理

很多朋友对于软件可用性和嵌入式软件可用性要求不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

本文目录

  1. 系统的高可用性,大家是怎样理解的可以采用哪些解决方案
  2. 在软件架构中,有哪些负载均衡它们起到的作用是什么
  3. 嵌入式软件可用性要求
  4. 衡量计算机可用性的指标是

系统的高可用性,大家是怎样理解的可以采用哪些解决方案

01什么是高可用性?首先,我们需要理解什么是高可用?维基百科的定义如下:高可用性(英语:HighAvailability,缩写为HA),IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一。基本上来说,就是要让我们的计算环境(包括软硬件)做到full-time的可用性。在架构上来说,需要考虑如下设计:1.对软硬件的冗余,以消除单点故障。任何系统都会有一个或多个冗余系统做standby。

2.对故障的检测和恢复。检测故障以及用备份的结点接管故障点。这也就是failover。

02高可用的三种模式1、主备模式主节点工作,备节点处于监控准备状况;当主节点宕机时,备节点接管主节点的一切工作;待主节点恢复正常后,有两种恢复方式,一种是自动或手动方式切回到主节点;另一种是不切回,以前的主机沦为备节点,这种方式一般在云端采用。数据的一致性一般是通过数据库同步方式解决。案例:天翼云/华为云MySQL数据库服务的主备实例,如下图所示:

2、双活模式

主节点和备节点同时运行,通过全局负载均衡器负载分摊访问流量,当主节点机宕机时,备节点机立即接管它的一切工作,保证系统不间断运行;主备节点一般是共享主节点的数据库实例,备节点数据库实例同步主节点实例,可提供只读服务。案例:招商局的同城双活灾备系统就是该模式,可参考链接:百年招商局大转型,“双云”混合继往开来

http://www.sohu.com/a/225597241_122592

3、集群模式

多个节点构成集群,一起工作,有如下特点:多主架构,去中心化;集群不同节点之间数据实时同步,没有延迟;在出现数据库故障时,因支持多点写入,切换容易;在服务期间,可支持节点增加或删除的“热插拔”;集群的维护,对应用程序是透明的。案例:天翼云/华为云分布式缓存集群实例,其架构图如下所示:

所有的redis节点彼此互联;客户端与redis节点直连,不需要中间proxy层;客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。

03IT基础设施的高可用1、网络高可用由于网络存储的快速发展,网络冗余技术被不断提升,提高IT系统的高可用性的关键应用就是网络高可用性,网络高可用性是通过匹配冗余的网络设备实现网络设备的冗余,达到高可用的目的。比如冗余的交换机,冗余的路由器等2、服务器高可用服务器高可用主要使用的是服务器集群软件或高可用软件来实现。3、存储高可用

使用软件或硬件技术实现存储的高度可用性。其主要技术指标是存储切换功能,数据复制功能,数据快照功能等。当一台存储出现故障时,另一台备用的存储可以快速切换,达一存储不停机的目的。

04高可用性的度量系统可用性一般用n个9来度量,9越多代表全年服务可用时间越长服务更可靠,停机时间越短,反之亦然。

下表提供了n个9对应的年、月、周、天的宕机时间:

宕机时间是怎么计算的呢?宕机时间顾名思义就是不可用时间,比如,可用性为99.999%(5个9),不可用性为1-99.999%=0.001%,我们算一下按照“年”来度量的宕机时间如下:365天*24小时*60分钟*(1-99.999%)≈5.26分/年。可信云官网列出的天翼云主机的业务可用性指标为99.95%,我们计算一下宕机时间:365天*24小时*(1-99.95%)≈4.38小时/年。

在线系统和执行关键任务的系统,比如金融系统,通常要求其可用性要达到5个9标准(99.999%)。

05数据一致性问题高可用系统,细节之处全是魔鬼,冗余结点最大的难题就是数据复制的数据一致性保证。冗余数据所带来的一致性问题是魔鬼中的魔鬼:如果主备节点数据复制是异步的,那么在failover的时候就会出现数据差异的情况。如果主备节点数据复制是同步的,那么就会导致冗余结点越多性能越慢。

所以,很多高可用系统都是在做各种取舍,如果我们对数据库的性能要求较高,能容忍一定的数据差异,建议采用异步复制模式;如果要求数据的强一致性,能够容忍一定的性能损耗,建议采用同步复制模式,比如银行账号的余额真实体现了账户的结余,不能允许主备节点账号余额不一致,此时就必需做到强一致性。

06高可用性总结要做到服务高可用,就必需要有备用(复本),无论是应用结点还是数据结点要做到复制,就会有数据一致性的问题,要根据业务场景来取舍我们不可能做到100%的高可用,也就是说,我们能做到几个9个的SLA我们很难计算出系统有多少的可用性,因为影响一个系统的因素实在是太多了,除了软件设计,还有硬件,还有第三方的服务(如电信联通的宽带SLA),当然包括“建筑施工队的挖掘机”。要真正保障系统的高可用性,是一件很难的事情,就算是3个9的可用性,一个月的宕机时间也只有40多分钟,即使是排名靠前的云服务商,也经常需要人肉处理故障,一个故障处理1个多小时甚至2-3个小时,也是正常情况,当云服务商在官网上声明自己的SLA是3个9或是5个9,要切实提高自己的自动化运维处理故障的能力,不然客户会拿着官网的SLA来索赔。

在软件架构中,有哪些负载均衡它们起到的作用是什么

如果项目的用户量少、访问量不大、数据量也不多的时候,一台服务器足以支撑,那么直接项目部署一套,直接访问使用就可以了,但是当用户和数据量不断增多,访问量(并发量)不断增加,一台服务器不在能够支撑业务的时候,就需要使用多台机器,设计高性能的集群来应对。

那么当我部署了多台服务器(这里假如是两台),那么调用方是如何访问的呢?服务方如何均衡访问的流量呢?这时候就需要引出负载均衡了。

负载均衡就是通过一定的策略,把用户的访问量均匀地转发给后端的服务器;负载均衡可以提高系统的服务能力和高可用性。

负载均衡分类

常见的负载均衡技术有三种:

DNS负载均衡:大概的原理是,当用户访问域名的时候,需要先通过DNS解析域名,找到对应的IP地址,在这个过程中,可以让DNS服务器,根据用户的地理位置,返回不同的IP,这样就可以实现负载均衡,同时也可以提升用户的访问速度。

软件负载均衡:用软件来实现流量的分发,有基于传输层实现的负载均衡,比如LVS,也有基于应用层来实现的,比如Nginx;软件负载均衡实现起来很简单,只需要在服务器上部署并进行配置就可以实现;

硬件负载均衡:用硬件来实现负载均衡,比如F5(F5NetworkBig-IP),这是一台网络设备,性能很高,同时价格非常的贵。

从另外一个角度对负载均衡进行分类,可以分成两种:

服务端负载均衡:调用方只访问负载均衡的IP,不需要管后面有多少台服务器。

客户端负载均衡:服务端部署多台服务器,客户端知道每台服务器的地址,并通过一定的路由规则,均衡地访问,比如SpringCloudRibbon,当然客户端的负载均衡,通常是需要服务注册发现的配合。

常见的负载均衡调度算法

轮循(RoundRobin):将请求循环分配给有效的服务器;

加权轮循(WeightedRoundRobin):轮训的升级版,给后端的服务器分配不同的权限,根据权重进行循环分配;比如A、B服务器权重分别是100和50,那么请求会保持2:1的比例进行分配;

最少连接数(LeastConnection):分配的请求根据每台服务器当前所打开的连接数来进行分配;

源IP哈希(SourceIPHash):对调用方的IP进行HASH运算,并根据这个计算结果分配服务器,这样的好处是同一个主机的请求,始终会被同一个服务器响应(但是不一定均衡)。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

嵌入式软件可用性要求

它的准确性、安全性和稳定性等方面能够满足实际应用的需要,还要尽可能对其进行优化,以减少对系统资源的消耗,降低硬件成本。

衡量计算机可用性的指标是

1、CPU的运算速度。运算速度是衡量计算机性能的一项重要指标。通常所说的计算机运算速度(平均运算速度),是指每秒钟所能执行的指令条数,一般用“百万条指令/秒”(mips,MillionInstructionPerSecond)来描述。同一台计算机,执行不同的运算所需时间可能不同,因而对运算速度的描述常采用不同的方法。常用的有CPU时钟频率(主频)、每秒平均执行指令数(ips)等。微型计算机一般采用主频来描述运算速度,通常显示为X.XGHz。一般说来,主频越高,运算速度就越快。

2、字长。一般说来,计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。在其他指标相同时,字长越大计算机处理数据的速度就越快。现在的大多装人都装64位的了。

3、内存的容量。内存储器,也简称主存,是CPU可以直接访问的物理存储器,需要执行的程序与需要处理的数据就是存放在主存中的。内存储器容量的大小反映了计算机即时存储信息的能力。随着操作系统的升级,应用软件的不断丰富及其功能的不断扩展,人们对计算机内存容量的需求也不断提高。目前,常见的内存容量都在1GB以上了。内存容量越大,系统功能就越强大,能处理的数据量就越庞大。

4、外存储器的容量。外存储器容量通常是指硬盘容量(包括内置硬盘和移动硬盘)。外存储器容量越大,可存储的信息就越多,可安装的应用软件就越丰富。目前,硬盘容量一般为300G至1TB,以后存储容量还会更大

好了,文章到此结束,希望可以帮助到大家。

精彩推荐