11 高可用的网站架构

Posted water___Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11 高可用的网站架构相关的知识,希望对你有一定的参考价值。

通常企业级应用系统为提高系统可用性,会采用较昂贵的软硬件设备,如IBM的小 型机乃至中型机大型机及专有操作系统、Oracle数据库、EMC存储设备等。互联网公司 更多地采用PC级服务器、开源的数据库和操作系统,这些廉价的设备在节约成本的同时 也降低了可用性,特别是服务器硬件设备,低价的商业级服务器一年宕机一次是一个大 概率事件,而那些高强度频繁读写的普通硬盘,损坏的概率则要更高一些。

既然硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障 时服务依然可用、数据依然保存并能够被访问。

实现上述高可用架构的主要手段是数据和服务的冗余备份及失效转移,一旦某些服 务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取 数据。
一个典型的网站设计通常遵循如图5.2所示的基本分层架构模型。

典型的分层模型是三层,即应用层、服务层、数据层;各层之间具有相对独立性, 应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的 存储与访问。中小型网站在具体部署时,通常将应用层和服务层部署在一起,而数据层 则另外部署,如图5.3所示(事实上,这也是网站架构演化的第一步)。

在复杂的大型网站架构中,划分的粒度会更小、更详细,结构更加复杂,服务器规 模更加庞大,但通常还是能够把这些服务器划分到这三层中。如图5.4所示。

不同的业务产品会部署在不同的服务器集群上,如某网站的文库、贴吧、百科等属 于不同的产品,部署在各自独立的服务器集群上,互不相干。这些产品又会依赖一些共 同的复用业务,如注册登录服务‘Session管理服务、账户管理服务等,这些可复用的业 务服务也各自部署在独立的服务器集群上。至于数据层,数据库服务、文件服务、缓存 服务、搜索服务等数据存储与访问服务都部署在各自独立的服务器集群上。

大型网站的分层架构及物理服务器的分布式部署使得位于不同层次的服务 器具有不同的可用性特点。关闭服务或者服务器宕机时产生的影响也不相同, 咼可用的解决方案也差异甚大。

位于应用层的服务器通常为了应对高并发的访问请求,会通过负载均衡设备将一组 服务器组成一个集群共同对外提供服务,当负载均衡设备通过心跳检测等手段监控到某 台应用服务器不可用时,就将其从集群列表中剔除,并将请求分发到集群中其他可用的 服务器上,使整个集群保持可用,从而实现应用高可用。

位于服务层的服务器情况和应用层的服务器类似,也是通过集群方式实现高可用, 只是这些服务器被应用层通过分布式服务调用框架访问,分布式服务调用框架会在应用 层客户端程序中实现软件负载均衡,并通过^务注册中心对提供服务的服务器进行心跳检 测,发现有服务不可用,立即通知客户端程序修改服务访问列表,剔除不可用的服务器。

位于数据层的服务器情况比较特殊,数据服务器上存储着数据,为了保证服务器宕 机时数据不丢失,数据访问服务不中断,需要在数据写入时进行数据同步复制,将数据 写入多台服务器上,实现数据冗余备份。当数据服务器宕机时,应用程序将访问切换到 有备份数据的服务器上。

网站升级的频率一般都非常高,大型网站一周发布一次,中小型网站一天发布几次。 每次网站发布都需要关闭服务,重新部署系统,整个过程相当于服务器宕机。因此网站 的可用性架构设计不但要考虑实际的硬件故障引起的宕机,还要考虑网站升级发布引起 的宕机,而后者更加频繁,不能因为系统可以接受偶尔的停机故障就降低可用性设计的标准。

以上是关于11 高可用的网站架构的主要内容,如果未能解决你的问题,请参考以下文章

汇总

汇总

汇总

11 高可用的网站架构

11 高可用的网站架构

大型网站技术架构--网站高可用架构(转)