大型网站技术架构:核心原理与案例分析—第二章:大型网站架构模式

1,网站架构模式
1)分层:横向,企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。一般分为应用层、服务层、数据层
优势:便于分工合作开发和维护
挑战:必须合理规划层次边界和接口,以及在开发过程中要严格遵循分层架构的约束,进制跨层次的调用以及逆向调用。
2)分割:纵向,将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元有助于软件的开发和维护,并且便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。
3)分布式:将通过分层和分割后的不同模块部署在不同的服务器上,通过远程调用协同工作。
分布式遇到的问题:
服务调用必须通过网络,对性能造成比较严重的影响
服务器越多,服务器宕机的概率越大
保持数据一致性困难
导致网站依赖错综复杂,开发管理维护困难
在网站应用中,常见的分布式方案有以下几种:
布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算
其他(分布式配置、分布式锁、分布式文件系统)

4)集群:多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
5)缓存:将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段。
常见缓存:
CDN(内容分发网络)部署在距离终端用户最近的网络服务商
反向代理:网站前端架构的一部分,部署在网站的前端,缓存网站的静态资源
本地缓存:在应用服务器本地缓存存放热点数据
分布式缓存:将数据缓存在一个专门的分布式缓存集群中。
6)异步:将一个业务操作分成多个阶段,每个阶段之间通过共享数据的方式异步执行进行协作。在单一服务器内部可以通过多线程贡献内存队列的方式实现异步;分布式系统中,多个服务器集群通过分布式消息队列实现异步。
异步消息队列的特性:
提高系统可用性
加快网站响应速度
消除并发访问高峰
7)冗余:一定程度的服务器冗余运行、数据冗余备份,可以在某台服务器宕机时将其上的服务和数据转移到其他机器上,实现服务高可用。
8)自动化:通过减少人为干预,是使发布过程自动化可有效减少故障。包括自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动化监控、自动化报警、自动化是小转移、自动化失效恢复、自动化降级、自动化分配资源等
9)安全:身份验证、加密、验证码、攻击处理、信息过滤、风险控制等

你可能感兴趣的:(php,系统架构)