大型网站技术架构核心原理剖析( 三 )


缺点:受大小限制,记录信息有限;每个请求都需要传输,影响性能;如果用户关闭,访问将异常 。
4. 服务器
通过对独立部署的服务器集群的统一管理,应用服务器每次读写都会访问服务器 。
应用服务器的状态分为无状态应用服务器和有状态服务器,其架构是根据这两种服务器的不同特点设计的 。
服务器实现:分布式缓存、数据库等
高可用服务
高可用服务模块为业务产品提供基础公共服务,一般独立部署 。
高可用服务策略:
1. 负载平衡

大型网站技术架构核心原理剖析

文章插图
高可用性是通过负载平衡故障转移策略实现的 。
2. 分级管理
根据应用和服务的重要性进行分级管理 。不同重要程序的服务使用不同的硬件资源,越重要的服务使用的硬件资源越好 。核心服务和数据部署在不同地区的数据中心 。
3. 超时设置
设置服务调用的超时时间 。一旦超时,通信框架会抛出异常,应用程序根据服务调度策略选择继续重试或将请求转移到同一服务的另一台服务器 。
4. 异步调用
应用程序对服务的调用是通过消息队列等异步方式完成的,从而避免了一个服务的失败和整个应用请求的失败 。
5. 服务降级
在网站访问高峰期,可能会因为大量并发调用导致服务性能下降,严重时服务可能会宕机 。为保证核心应用和功能的正常运行,对服务进行降级 。
降级的意思:
6. 幂等设计
服务层必须保证重复调用和一次调用产生相同的结果,即服务是幂等的 。
高可用数据
1. 上限
为了保证数据的高可用性,会牺牲数据的一致性 。
高可用数据含义:
CAP原理:一个提供数据服务的存储系统不能满足数据一致性()、数据可用性()、分区容限(系统具有跨网络分区的可扩展性)三个条件 。
在大型网站应用中,数据的规模总是在快速扩展,因此可扩展性,即分区容错性是必不可少的 。规模变大之后,机器的数量也会变得巨大,这就是网络故障和服务器故障的频发 。为了保证应用程序的可用性,必须保证分布式处理系统的高可用性 。因此,在大型网站中,通常选择加强分布式存储系统的可用性(A)和可扩展性(P),同时在一定程度上放弃一致性(C) 。
数据不一致的原因:系统并发写操作高或集群状态不稳定(故障恢复、集群扩容) 。
数据一致性分为:
确保数据存储高可用性的手段:
2. 数据备份
保证数据有多个副本,任何一个副本失败都不会导致数据永久丢失,从而实现数据的完全持久化 。
数据备份方法:
3. 故障转移机制
保证当一个数据副本不可访问时,可以快速切换其他数据副本,保证系统可用 。
故障转移操作包括:
高可用性网站的软件质量保证
为确保在线系统的可用性而采取的一些质量保证措施:
网站运行监控
监测数据收集
监控管理
需要根据实时监控数据进行风险预警,并对服务器进行故障转移和自动负载调整,以最大限度地利用集群中的所有机器资源 。
可调节的
可扩展性是指通过不断向集群添加服务器来缓解用户不断上升的并发访问压力和对大数据存储日益增长的需求 。
衡量架构可扩展性的指标:
网站可扩展性设计分类
网站的可扩展性设计主要分为以下两类:
1. 物理分离功能实现缩放
通过物理分离不同的网站功能,实现网站可扩展性的手段可以用于网站开发的任何阶段 。不同的服务器部署不同的服务,提供不同的功能 。