系统高可用

高可用网站架构设计的主要目的,就是保证系统出现故障(硬件、软件、网络)时服务仍可用。

主要手段就是冗余备份和失效转移,即负载均衡+集群。

典型的分层结构是应用层、服务层、数据层。

应用层通常为了应对高并发的请求,会通过负载均衡技术将一组服务器组成一个集群对外提供服务。当检测到某个服务器不可用时,  就将此服务器从列表中清除,将请求分发到其它可用服务器,从而使服务保持高可用。

服务层也采用负载均衡+集群模式保持高可用。

数据层则是通过写时同步复制,将数据写入多个服务器上,实现高可用。当一台服务器出现故障,则将访问切换到正常的服务器上。


高可用的应用

无状态的应用,集群中所有应用服务器都是平等的,这种是最简单的。

当服务器集群都可用时,负载均衡服务器将请求分发到任意一台服务器。而当其中一台服务器失效时,负载均衡服务器通过心跳检测到故障,就会把它从服务器列表中删除,而将请求分发到其它服务器。

当前不管开源的负载均衡软件,还是昂贵的负载均衡硬件,都提供失效转移功能。

即使一个系统访问量非常小,一台服务器也绰绰有余,但考虑到高可用,也应该使用负载均衡器,+2台服务器组成集群。

有状态的应用, 单机情况下session可由部署在服务器上的容器(例如jboss)管理。集群情况下的session管理则较复杂,比较好的方案就是session服务器(集群)。它的理念就是将集群分成有状态、无状态部分,应用服务器集群是无状态的,当它们需要session时就访问session服务器(集群)。对于session服务器(集群)比较简单的实现就是使用分布式缓存、数据库。 对有更复杂的业务需求,例如单点登录、用户登录等,则需要开发专门的session管理平台。


高可用的服务

分级管理、超时设置、异步调用、服务降级、幂等性设计


系统监控

监控对于系统的重要性不言而喻,没有监控系统就无法掌握系统的状态,高可用性也就无从说起。

监控数据采集:

系统日志采集、性能监控、运行数据报告

监控管理:

系统报警、失效转移、自动降级




你可能感兴趣的:(系统高可用)