大型分布式网站的架构演进

1.单一应用框架

一个简单的电商网站,可能包含如下的几个模块和功能:首页,detail,list,下单,支付以及后台管理页面和功能.

单一应用架构带来的问题:

1.代码越来越庞大,业务越来越复杂,多个团队开发同一个应用,难以维护

2.业务复杂,占用的系统资源越来越多,流量越来越大,不方便扩展.


2.垂直应用框架

解决的问题:

解决了单一框架所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上减低了开发人员之间协同以及维护的成本,提升了开发效率.

缺陷:

相同的逻辑代码在不同的垂直应用中复制,不能复用,难以维护和升级.



3.分布式应用框架

好处:

将公共的业务逻辑提取出来,形成服务,对外提供,避免重复造轮子,相同的逻辑维护一份,也便于升级改造,原本需要一个大团队维护的系统,也可以切分成一个个子系统,分配给一个个固定小团队来维护,降低了系统发布的风险,提高了系统的稳定性,并且也可以让前端业务系统与底层数据访问分离,团队分工更为明确.



大型分布式网站的架构演进


随着单一应用框架,垂直应用架构向分布式应用架构的演变,业务规模越来越庞大,系统逻辑越来越复杂,系统研发和维护团队规模也越来越大,又发展为面向服务的架构体系(SOA),并且,部分通用的功能和组件抽离出来,形成一系列中间件,加上一系列的分布式系统的基础设施,共同组成了大型分布式网站的复杂架构.在系统逐步服务化的同时,一个大型,稳健,成熟的分布式系统背后,往往会涉及众多的中间件,以及一系列的支撑系统,我们将这些中间件和支撑系统称为分布式系统的基础设施.

这些分布式系统所依赖的基础设施包括:服务框架,消息中间件,数据访问中间件,配置中心,分布式缓存系统,持久化存储(关系数据库,nosql数据库),搜索引擎,CDN网络,负载均衡系统,运维自动化系统,硬件虚拟化及镜像管理系统,分布式文件系统,日志收集系统,监控系统,离线计算,实时计算,数据仓库等等.


如何理解面向服务(SOA)的架构体系

1.服务化的初衷:业务逻辑复用,公共的业务被拆分出来,形成可共用的服务.最大程度上保障代码和逻辑的复用性,避免重复建设

2.SOA是用来解决什么问题的:

随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系越来越复杂,SOA就是用来解决服务之间调用和依赖的问题的.SOA对服务提供,服务调用,连接处理,通信协议,序列化方式,服务发现,服务路由,日志输出等行为进行了封装的服务架构,以及为大规模的服务化应用保驾护航的服务治理系统.



原文地址:https://www.cnblogs.com/chenxiaochan/p/7253404.html