《大型网站技术架构》学习笔记——架构模式

来源:互联网 发布:和活好的男朋友知乎 编辑:程序博客网 时间:2024/05/29 04:59

为了解决高并发访问、海量数据处理和高可靠性运行一系列问题,大型网站架构都会有一些大同小异的套路,可称为大型网站的架构模式:


1、分层

逻辑概念。将系统在横向维度上划分成几个部分,每个部分负责相对单一的职责,然后通过上层对下层的依赖和调用,共同组成一个完整的系统。

通常可分为 

应用层:负责业务和视图战士,如网站首页、搜索输入及结果等。可以继续细分为视图层 + 业务逻辑层

服务层:为应用层提供服务支持,如用户管理、购物车服务等。可细分为 数据接口层+ 逻辑处理层。

数据层:提供数据存储及访问,如数据库、缓存、文件、搜索引擎等

分层架构必须合理规划层次边界和接口,禁止跨层次调用,比如应用层直接调用数据层,或者你想调用,数据层调用服务层,服务层调用应用层等。

分层结构对网站日后的扩展等至关重要,应该在规模很小的时候就进行分层。


补充:

MVC模式是一种框架模式。它跟网站这个架构模式怎么结合?找到一些图,先记下来,以后在实践中体会:




2、分割

在纵向对功能进行分割。比如在应用层,将不同业务进行分割,交给不同团队负责,部署在不同的服务器。


3、分布式

分层、分割的一个主要目的是便于分布式部署。

分布式意味着有更多的机器来共同完成同样的功能,资源更多,能够处理的数据和访问就越多。但开发管理复杂,因此要量力而行。

常用分布式方案:

1)分布式应用和服务

2)分布式静态资源。如JS、CSS、LOGO图片独立分布存放,并采用独立的域名,所谓动静分离。独立域名是为了加开浏览器并发加载速度。

3)分布式数据和存储。

4)分布式计算


4、集群

因为有更多服务器提供相同服务,因此集群可以提供能好的并发性。更重要的是,避免业务不致受服务器故障的影响。所以在网站应用中,即使是访问量很小的功能,也至少部署两台服务器构成一个小集群。


5、缓存

1)CDN

2)反向代理

3)本地缓存

4)分布式缓存


6、异步

引入排队机制,改善体验。


7、冗余

集群,备份。


8、自动化

无人值守,自动化发布,监控,告警,失效转移等。


9、安全


原创粉丝点击