可扩展架构的核心思想基本可以总结为一个字:拆,按照不同的思路来拆分软件系统,就会得到不同架构,常见的拆分思路有三种:
1.面向流程拆分(分层架构)
2.面向服务拆分(SOA,微服务)
3.面向功能拆分(微内核架构)
我们以TCP/IP协议为例来说明流程,服务,功能的区别和联系,所谓流程就好比对应五层网络模型应用->传输->网络->数据链路->物理层
不管最上层的应用是什么,这个流程都不会变
而应用层的HTTP,FTP,SMTP等就是服务,分别提供web服务,文件服务,邮件服务等,这这些服务都有其对应的功能,比如HTTP提供GET,POST功能,FTP提供上传下载功能。
下面主要我们要谈的就是根据这几种拆分所形成的三种对应的软件架构
分层架构
分层架构一般呈现层级之间的依赖关系,层次之间要有一定的隔离
SOA架构和微服务
SOA提出的背景就是企业内部的IT系统重复建设且效率低下,使用ESB来屏蔽异构系统对外提供各种不同的接口的方式,以此来达到服务间高效的互通。说到微服务其实就是利用restful协议来实现ESB的SOA,是一种更细粒度和轻量级的SOA,微服务虽然轻量级,但是其架构设计并不简单,因为它吧ESB所做的事情放到了其基础设施中去。(服务注册和发现,服务路由,网关,服务跟踪,服务监控,服务容错,配置中心)
微内核架构
也被称为插件化架构,是一种面向功能进行拆分的可扩展架构如OSGI.
网友评论