【读书笔记】网站的高可用架构

前言

本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性本文针对可用性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书(一万分推荐这本书,个人认为这本书可以说是技术架构导论一样的存在了)。

可用性是网站架构设计的重要参考要素,一个网站短短的一段时间内的服务不可用所带来的损失都有可能是非常巨大的。

保证系统可用性主要有如下几种手段。

冗余

保证高可用的主要手段是使用冗余,当某个服务器故障时就请求其它服务器。

一、应用服务器的冗余

应用服务器的冗余比较容易实现,只要保证应用服务器不具有状态,那么某个应用服务器故障时,负载均衡器将该应用服务器原先的用户请求转发到另一个应用服务器上,不会对用户有任何影响。

所谓无状态是指应用服务器不保存业务的上下文信息(即Session尽量不要在应用服务器上存储),而仅根据每次请求提交的数据进行相应的业务逻辑处理。

在这里插入图片描述
不保存状态的应用给高可用的架构设计带了巨大的便利,既然服务器不保存请求的状态,那么所有的服务器完全对等,当任意一台或者多台服务器宕机,请求提交给集群中其他任意一台可用机器处理,这样对终端用户而言,请求总是能够成功的,整个系统依然可用。

二、存储服务器的冗余

存储服务器的冗余需要使用主从复制来实现,当主服务器故障时,需要提升从服务器为主服务器,这个过程称为切换。

监控

对 CPU、内存、磁盘、网络等系统负载信息进行监控,当某个信息达到一定阈值时通知运维人员,从而在系统发生故障之前及时发现问题。

服务降级

服务降级是系统为了应对大量的请求,主动关闭部分功能,从而保证核心功能可用。

降级有两种手段:

  • 拒绝服务
  • 关闭服务

拒绝服务:拒绝低优先级应用的调用,减少服务调用并发数,确保核心应用正常使用;或者随机拒绝部分请求调用,节约资源,让另一部分请求得以成功,避免要死大家一起死的惨剧。

关闭服务:关闭部分不重要的服务,或者服务内部关闭部分不重要的功能,以节约系统开销,为重要的服务和功能让出资源。

猜你喜欢

转载自blog.csdn.net/u013568373/article/details/91358551