架构模式
模式: 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地用该方案而不必做重复工作。
先来说说常见的网站架构模式。这里没有涉及具体实现过程,只是简单介绍其思想和原理,方便日后有用到再深入了解。
分层
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。
分层
功能
应用层
负责具体业务和视图展示,如网站首页以及搜索输入和结果展示
服务层
为应用层提供服务支持,如用户管理服务,购物车服务
数据层
提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等
分层架构还可以细分下去 ,比如说应用层可以细分为视图层和业务逻辑层。服务层可以细分为数据接口层和逻辑处理层。
分层结构对网站支持高并发向分布式发展至关重要,所以在网站规模很小的时候就应该采用分层的架构,这样将来网站做大时才能有更好地应对。
所以说我们在设计一个新项目的架构时,就需要考虑到分层。不能等到日后项目做大了,再重构就耗时耗力了。
分割
上面的分层是将软件在横向方面进行切分,而分割是在纵向方面对软件进行切分。将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元。
比如在应用层,将购物、论坛、搜索、广告分割成不同的应用,由独立的团队负责,部署在不同的服务器上。
在同一个应用内部,如果规模庞大业务负责,会继续进行分割,比如说购物业务,可以分割为机票酒店业务、3C业务、小商品业务等更细小的粒度。
分布式
对于大型网站, 分层和分割的主要目的是为了切分后的模块便于分布式部署 。
利用分布式解决网站高并发的问题的同时,会带来其他问题:
分布式意味着服务调用必须通过网络,这可能对性能造成比较严重的影响;
1) 服务器越多,服务器宕机的概率就越大;
2) 数据的一致性问题,分布式事务难以保证;
3) 开发管理维护困难。
所以说要量力而行,不要为了分布式而分布式。
常用的分布式方案有以下几种:
1) 分布式应用和服务:将分层和分割后的应用和服务模块分布式部署,使不同应用复用共同的服务,便于业务功能扩展。
2) 分布式静态资源:网站的静态资源如js、css、图片等独立分布式部署,并采用独立的域名。减轻应用服务器的负载压力,并通过独立域名加快浏览器并发加载速度。
3) 分布式数据和存储:数据量过大,一台机器无法存储。
4) 分布式计算:后台业务需要处理,包括搜索引擎的索引构建、数据仓库的数据分析统计。通过Hadoop及MapReduce分布式计算框架进行批处理计算。
如果你对IT感兴趣~
如果你想成为IT技术大咖~
如果你有梦想~
如果你想拥抱成功~
快来报名加入我们~
翡翠教育的大舞台~
任你挥洒努力的汗水~
学好IT技术~
翡翠教育成就美好人生!
关注翡翠教育官网
了解最新资讯
关注翡翠教育官微
了解最全动态
领取专属 10元无门槛券
私享最新 技术干货