网站的可用性(Availability)描述网站可有效访问的特征。
- 网站可用性的度量与考核
- 网站可用性度量
2.网站可用性考核
可用性指标是网站架构设计的重要指标。从管理层面,可用性指标是网站或者产品的整体考核指标,具体到每个工程师的考核,更多使用的是故障分。所谓故障分是指对网络故障进行分类加权计算故障责任的方法。
- 高可用的网站架构
硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问。实现高可用架构的主要手段是数据和服务的冗余备份以及失效转移,一旦某些服务器宕机,就将服务切换到其它可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。
- 高可用的应用
应用层主要处理网站应用的业务逻辑,有时也称作业务逻辑层,应用的一个显著特点是应用的无状态性。所谓无状态的应用是指应用服务器不保存业务的上下文信息,而仅根据每次请求提交的数据进行相应的业务逻辑处理,多个服务器实例之间完全对等,请求提交到任意一台服务器,处理结果都是一样的。
1.通过负载均衡进行无状态服务的失效转移
负载均衡:在业务量和数据量较高的情况下,当每台服务器不足以承担所有的负载压力时,通过负载均衡手段,将流量分配和数据分摊到一个集群组成的多台服务器上,以提高整体的负载处理能力。当集群中服务是无状态对等时,负载均衡可以起到事实上的高可用作用。
2.应用服务器集群的Session管理
集群环境下,Session管理手段:
- Session复制
优点:从本机读取Session信息速度快,适合集群规模比较小的情况下。
缺点:当集群规模比较大时,集群服务器间需要到大量的通信进行Session的复制,占用大量服务器和网络资源。而且由于所有用户的Session信息在每台服务器上都有备份,在大量用户访问的情况下,可能出现服务器内存不够session使用的情况。
- session绑定
Session绑定方案不符合系统高可用的需求,因此很少有网站利用这个算法进行Session管理。
- 利用Cookie记录Session
- Session服务器
利用独立部署的Session服务器(集群)统一管理Session,应用服务器每次读写Session是,都要访问Session服务器
这种解决方案事实上是将应用服务器的状态分离,分为无状态的应用服务器和有状态的Session服务器,然后针对这两种服务器的不同特性分别设计其架构。对于有状态的Session服务器,一种比较简单的方法是利用分布式缓存、数据库等,在这些产品的基础上进行包装,使其符合Session的存储和访问要求。如果业务场景对Session管理有比较高的要求,比如利用Session服务集成单点登录(SSO)、用户服务等功能,则需要开发专门的Session服务管理平台。