大型网站技术架构-大型网站架构模式

1、分层(横向分割)

-分层架构是逻辑上的,三层结构可以物理部署在同一个物理机器上。一般分层的模块分离部署。

-可继续分层:应用层:视图层+业务逻辑层,服务层:数据接口层(适配层)+逻辑处理层

2、分割(纵向分割)

-按功能、服务分割,便于不通模块分布式部署,便于软件开发和维护。

3、分布式

-分层和分割都是为了分布式部署。不同模块部署在不同的服务器上,通过远程调用协同工作。

-存在的问题:

 * 调用都通过网络,所以网络条件影响性能;

 * 服务器多,宕机概率大,一台宕机可能导致多应用不可访问

 * 保持数据一致性困难,分布式事务难以保证 * 网站依赖复杂,开发管理维护难 常用的分布式方案:

 * 分布式应用和服务:分层分割应用和服务模块。便于复用共同业务

 * 分布式静态资源:动静分离。静态资源独立分布式部署,采用独立域名。

 * 分布式数据和存储:海量数据不能存储在单台计算机内。除了传统关系数据库进行分布式部署外,各种NoSQL产品基本都是分布式的

 * 分布式计算:分布式计算框架进行批处理计算。将计算程序分发到数据所在位置以加速计算。

4、集群

-多台服务器部署相同应用构成一个集群,通过负载均衡设备对外提供服务。

-一个应用由多台服务器提供,当某台故障时,负载均衡设备会将请求转发到其他机器上。提高可用性。

5、缓存

 * CDN(内容分发网络):缓存静态资源

 * 反向代理:前端架构一部分,静态资源,无需将请求继续转发给服务器就能返回给用户

 * 本地缓存:应用服务器本地缓存,本机内存中直接访问数据,无需访问数据库

 * 分布式缓存:分布式缓存集群,应用程序通过网络通信访问缓存数据

6、异步

-系统解耦手段除了分层、分割、分布外,还有异步。

 * 单一服务器中,多线程共享内存队列实现异步

* 多服务集群利用分布式消息队列实现异步

具体见笔记“分布式消息队列”:解耦、异步、削峰

7、冗余

 * 冷备份:定期备份、存档保存

 * 热备份:数据库主从分离,实时同步

 * 容灾数据中心:网站程序和数据实时同步到多个容灾数据中心

8、自动化:自动化代码管理、自动化测试、自动化安全监测、自动化部署、自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源

9、安全

你可能感兴趣的:(大型网站技术架构-大型网站架构模式)