对于一个网站而言,最重要的事情就是保证网站一直“可用”,也就是能够被访问到,
先不管你可以支持多少并发,也不要管后台数据的收集和整理有没有很成熟,首先不论怎样你都必须网站可用。
在前面我们已经阐述了网站高可用的一些手段,下面会进行一些整体的论述。
怎样来阐述一个网站的可用性手段了?
我们应该依据网站的架构,一次从前往后来进行阐述,也就是应用层、服务层和数据层,最后在阐述一些综合性的问题。
1.应用高可用
我们知道应用是无状态的,应用层应该只对请求做逻辑处理。
首先我们保证其高可用的手段就是负载均衡,集群中的某一台不能被访问的时候,访问的请求应该能够被转移到其他的服务器上。
还有一个需要注意的是session处理,如果保证用户的Session信息的一致性,之前我们一共介绍了4中手段,
分别是Session复制、Session绑定、写入Cookie、Session集群。
能做进行应用负载均衡的手段有很多,一般是软件和硬件两个方面的,软件的有nginx、Haproxy等
而专门做高可用的有keepalive。
2.服务高可用
服务层是进行具体的访问的处理,在这里服务器会针对不同的请求做不不同的回应,
保证服务高可用依然最基本的手段是负载均衡,其次还有一些其他的手段,
比如:分级管理、超时设置、异步调用、服务降级和幂等性设计。
3.数据高可用
对于许多网站而言,数据是其最宝贵的的财产尤其是在这个大数据的时代,
首先要说明CAP原理:数据可用性、数据一致性、分区耐受性(可访问性)无法得到同时满足。
保证数据高可用的手段主要是:数据备份和失效转移机制。
数据备份有异步热备方式和同步热备方式。失效转移有失效确认、访问转移、数据恢复三步。
4.软件质量保证
如何保证软件的可用性方面也有一些需要注意的方面:
网站发布、自动化测试、预发布验证、代码控制、灰度发布等