
客户端层:浏览器,APP,第三方系统
反向代理层:系统入口,反向代理,Nginx多节点部署或者使用LVS虚拟
网关:用于统一认证鉴权已经其他安全控制和统计
服务-应用层:实现核心应用逻辑。用于对下边各个微服务的功能进行整合,业务的编排,返回html或者json,如果功能简单可以省略这一层
服务-领域层:Service代码,如果使用DDD领域驱动这一层就是Domain层
数据-缓存层:缓存加速访问数据
数据-数据库层:数据库持久化数据
如果有动静分离,在网关一层添加CDN
如果持久层进行分库,会用到Mycat中间件
如果服务逻辑比较简单,直接使用一个服务完成处理请求,只在内部进行三层的划分。拆分微服务可通过纵向业务逻辑来拆分。

如果服务层业务比较内聚,比如:订单管理,库存管理,商品管理等,现在进行一个下单操作,就需要通过对订单,库存,商品等模块进行编排和调度。
这样的服务适合构建业务中台,外层的业务系统其实就是对中台能力的编排。

如果类似Saas架构,基础设施如:DB持久化,短信服务,流程引擎,元数据驱动等PaaS服务。应用层就是基于Pass层来完成,也可以进行更多的分层。

END