三高论文

三高架构的重要性

李昱康

(石家庄铁道大学,河北省石家庄市050000)

摘要:随着电子信息时代的高速发展,我们身边无时无刻不在产生数据,由于人口基数和产生数据的频率逐步增高,数据量也会变得越来越庞大,此时,如果再保持之前处理数据的方法,在产生结果的效率上会大打折扣,在使用体验上也不言而喻,为了解决这个时代发展带来的问题,三高——高并发,高性能,高可用技术应运而生

关键词:高性能;高并发;高可用性

中图分类号:   文献标志码:A

The importance of the three high architectures

LiYukang

1. Shijiazhuang Tiedao University, Shijiazhuang City, Hebei Province, 050,000

Abstract: With the rapid development of the electronic information age, we are around all the time to produce data, due to the population base and the frequency of generating data gradually increased, the amount of data will become more and more huge, at this time, if you maintain the previous method of processing data, the efficiency of the results will be greatly reduced, in the use of experience is self-evident, in order to solve the problems brought about by the development of this era, three high - high concurrency, high performance, high availability technology came into being.

Keywords: High performance; High concurrency; High availability


0  引言

面向互联网的三高系统,最关注的软件质量属性是:性能、可用性、伸缩性、扩展性、安全性。
而构建此类系统,最常见的架构模式有:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化(发布、部署、监控)。

1     高并发参考指标

高并发不能只看数字,要看具体的业务场景。对于高并发而言,产品类型不同,会有不同的衡量指标。以电商系统为例,商品浏览看得是 QPS,订单模块则是看得 TPS。同时,还需要关注活跃的用户量等等。不同的业务场景应该将架构进行针对性优化,具体问题具体分析。

产品、市场、运营的成功,带来了同时段大量用户对系统的访问,这就是高并发。

 

高并发本身并不是一种技术的方法,它是系统要面临的一种有技术挑战的场景。

在这个场景下,(工程)技术的核心价值,是确保高并发时的用户体验,具体而言,就是系统不应该发生错误,并且以极快的速度给用户响应。

上面是对问题的定性分析,但定性分析不能帮助我们开展工作,所以还需要能够对问题进行定量分析。

可用性、性能、扩展性就是用于定量分析的三个视角。

可用性的目标,是为了让系统尽可能不发生错误,或者将发生错误后的损失降到最低。

性能的目标,是为了让尽可能多的用户,用尽可能少的时间得到系统的响应。

扩展性的目标,是为了支撑可用性和性能,在一些特殊情况下,不得不对系统结构做出调整时,尽可能以低成本的方式完成。

总结一下就是:

1)高并发是我们要面临的场景

2)用户体验是我们要解决的问题:系统没有错误,系统响应极快

3)可用性、性能、可扩展性是为了解决上述用户体验问题,进行量化分析的几个视角

4)可用性量化拆解:变化数量* 变化产生故障的比例* 故障的影响* 故障持续的时间

5)性能量化拆解:资源使用时间  + 资源等待时间

5.1)资源使用时间优化:提高利用率、过去或未来换现在,高速资源换低速资源

6)扩展性:量化分析投入产出比选择合适的时机

2  高性能参考指标

 

高性能计算(High performance computing, 缩写HPC) 指通常使用很多处理器(作为单个机器的一部分)或者某一集群中组织的几台计算机(作为单个计 算资源操作)的计算系统和环境。有许多类型的HPC 系统,其范围从标准计算机的大型集群,到高度专用的硬件。大多数基于集群的HPC系统使用高性能网络互连,比如那些来自 InfiniBand 或 Myrinet 的网络互连。基本的网络拓扑和组织可以使用一个简单的总线拓扑,在性能很高的环境中,网状网络系统在主机之间提供较短的潜伏期,所以可改善总体网络性能和传输速率。高性能计算主要涉及微处理器、高性能计算机系统、高性能并行算法与应用等多个核心技术。

我们平时经常说几节点,几核,几进程,几线程,这里面的节点就是指某一集群中的某台或多台计算机,核便是指计算机中的处理器,现在一般都是多核处理器,即在一个处理器上集成多个运算核心,从而提高计算能力。进程是一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。

高性能计算可分为好多种类,这里只举以并行任务间分类的例子。

根据并行任务间分类可分为高吞吐计算和分布计算

高吞吐计算可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。因为这种类型应用的一个共同特征是在海量数据上搜索某些特定模式。

而分布计算虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。

从硬件上分类,可分为共享内存计算机,和分布式内存集群

在共享内存计算机上,所有处理单元都可以访问随机存取存储器(RAM);而在分布式内存集群中,不同的处理单元或节点 之间无法访问内存。在使用分布式内存配置时,由于不同的处理单元不能访问同一个内存空间,因此必须存在一个相互连接的网络,才能在这些单元之间发送消息(或者使用其他通信机制)。鉴于有些单元共享共同的内存空间,而其他单元又是另一种情况,现代 HPC 系统通常是融合了这两个概念的混合体。

3  高可用性

在计算中,术语可用性用于描述服务可用的时间段,以及系统响应用户请求所需的时间。高可用性是系统或组件的质量,可确保在给定时间段内实现高水平的操作性能。

高可用性用作基础架构的故障响应机制。它的工作方式在概念上非常简单,但通常需要一些专门的软件和配置。

在建立稳健的生产系统时,最大限度地减少停机时间和服务中断通常是首要任务。不管如何可靠的系统和软件,可能会出现问题,可以降低你的应用程序或服务器。 对于您的基础架构实现高可用性是减少这类事件的影响的有用策略。高度可用的系统可以自动从服务器或组件故障中恢复。

高可用性的目标之一是消除基础架构中的单点故障。单点故障是技术堆栈的一个组件,如果它变得不可用,将导致服务中断。因此,这是为你的应用程序,没有冗余的正常功能的必要条件的任何部件被认为是单一故障点。

要消除单点故障,必须为堆栈的每一层做好冗余准备。例如,假设您的基础架构由负载均衡器后面的两个相同的冗余Web服务器组成。来自客户端的流量将在Web服务器之间平均分配,但如果其中一个服务器出现故障,负载均衡器会将所有流量重定向到剩余的在线服务器。

仅冗余不能保证高可用性。必须有一种机制来检测故障并在堆栈的某个组件不可用时采取措施。

可以使用从上到下的方法实现冗余系统的故障检测和恢复:顶部的层负责监视其下方的层以确定故障。在我们之前的示例场景中,负载均衡器是顶层。如果其中一个Web服务器(底层)变得不可用,则负载平衡器将停止重定向该特定服务器的请求。

这种方法往往更简单,但它有一些局限性:您的基础架构中有一个点,即顶层不存在或不可及,负载平衡器层就是这种情况。为外部服务器中的负载均衡器创建故障检测服务只会创建新的单点故障。

在这种情况下,分布式方法是必要的。必须将多个冗余节点连接在一起作为一个集群,其中每个节点应该同样能够进行故障检测和恢复。

高可用性是可靠性工程的重要子集,专注于确保系统或组件在给定的时间段内具有高水平的操作性能。乍一看,它的实施可能看起来相当复杂; 但是,它可以为需要提高可靠性的系统带来巨大的好处。

4  结束语

概念终归只是概念,在漫长的实践中我们已经很清楚的知道,针对不同的项目和需求需要不同的架构,也需要不同的方法,但是万变不离其宗,三高架构的产生是为了解决当前网络时代数据量过大的问题,而这个问题不会消失反而只会越来越突出,所以三高架构的重要性不言而喻,未来在三高架构也会不断的发展。

 

posted @ 2022-05-20 17:27  不详·Christina  阅读(168)  评论(0)    收藏  举报