网站架构模式
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分比相对比较单一的职责 ,然后通过上层对下层的依赖和调用组成一个完整的系统。
分层结构无处不在,例如网络7层通信协议,计算机硬件、操作系统、软件也可以看做是分层结构。在大型网站中也采用分层结构。将网站分为应用层、服务层、数据访问层, 通过分层,可以将一个庞大的系统切分成不同的部分,便于分工合作开发和维护,各层之间具有一定的独立性,只要维持调用接口不变,各层可以根据具体的业务变化独立演变发展而不影响其他的层。
在分层架构中,必须合理划分层次边界和接口,严禁跨越层次调用。
大的分层机构内部还可以继续分层,比如应用层可以分为视图层、业务逻辑层等。
分层结构是逻辑上的,在物理部署上,三层结构可以部署在同一个物理机器上,但是随着网站业务的增大,可能需要将已经分层的 模块进行分离部署,以便网站可以应用更多的资源来应对更多用户的访问。分层结构的最开始是为了使得软件模块划分清晰和容易维护,在网站的不断发展演变过程中,分层结构对于网站从单机部署到分布式方向发展是至关重要,因此在网站的演变初期就应该使用分层结构,将来的网站才能更好的演变。
2、分割:
分层结构是在横向维度上进行切分的,而分割是在纵向维度上进行分割。随着网站越来越大,功能越来越复杂,这个时候可以把不同功能的业务分割开来进行独立的部署,一方面可以简化维护,另一方面可以使得在整个网站中并发量最大的业务分离开来独立享受资源。
3、分布式:
分层和分割的主要目的是为了对切分后的模块便于分布式部署,也就是将不同的模块部署在不同的机器上面,通过远程调用完成相应的业务。
分布式意味着网站可以使用更多的计算机资源来应对高并发的访问,为更过的用户提供访问。
但是分布式也带来了很多的弊端。处在同一分布式中的机器互相访问必须要通过网络作为中间介质,假如说为了完成某个业务,需要通过多台机器来进行计算处理,那么在计算的过程中必须要依赖网络的质量,可能会影响计算处理的速度。再者,服务器越多,服务器宕机的概率也大。 某台机器上的服务不可用使得网站的可用性降低。还有就是在分布式中,分布式事务也难保证一致,这对网站的业务会造成很严重的 影响。分布式导致网站以来错综复杂,提高了网站开发维护的难度。
分布式方案可以分为以下几种:
分布式应用和服务:将分层和分割后的业务进行分布式部署,可以使得网站应对更大的并发量。
分布式静态资源:也就是将网站的静态资源(js、image、css、logo等)独立部署,并采用独立的域名,这也就是人们常说的"动静分离",这样可以减轻业务服务器的访问压力,可以使浏览器快速的响应。
分布式数据和存储:单台机器无法存储大数据,因此需要更多地机器来联合存储,除了对传统的关系型数据库进行分布式部署之外,为网站的大数据存储应运而生的nosql产品几乎都是分布式的。
分布式计算:网站某些部分处理的数据量非常之大,这个时候就需要把计算程序分发到各台机器上一边加速计算和响应。
4、集群:使用分布式虽然已经将分层和分割后的模块进行部署,但是对于大型网站的首页(访问量巨大)还需要独立部署,即多台机器部署相同的应用构成一个集群,同时通过负载均衡设备共同对外提供服务。当需要应对更大的并发时,只需要向集群中加入机器即可。
本文内容摘自李智慧《大型网站技术架构 核心原理与案例分析》
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。