4、基础服务层:有的时候成为中台层 , 将通用的能力抽象为服务对外提供原子化接口 。这样上层可以根据业务需求 , 通过灵活的组合这些原子化接口 , 灵活的应对业务需求的变化 , 实现能力的复用 , 以及数据的统一管理 , 例如用户数据 , 支付数据 , 不会分散到各个应用中 。另外基础服务层称为应用和数据库和缓存的一个分界线 , 不应该所有的应用都直接连数据库 , 一旦出现分库分表 , 数据库迁移 , 缓存选型改变等 , 影响面会非常大 , 几乎无法执行 。如果将这些底层的变更拦截在基础服务层 , 上层仅仅使用基础服务层的接口 , 这样底层的变化会对上层透明 , 可以逐步演进 。
5、第五个层次是业务服务层 , 或者组合服务层 , 大部分的业务逻辑都是在这个层面实现 , 业务逻辑比较面向用户 , 因而会经常改变 , 所以需要组合基础服务的接口进行实现 。在这一层 , 会经常进行服务的拆分 , 实现开发独立 , 上线独立 , 扩容独立 , 容灾降级独立 。微服务的拆分不应该是一个运动 , 而应该是一个遇到耦合痛点的时候 , 不断解决 , 不断演进的一个过程 。微服务拆分之后 , 有时候需要通过分布式事务 , 保证多个操作的原子性 , 也是在组合服务层来实现的 。
6、用户接口层:也即对终端客户呈现出来的界面和App , 但是却不仅仅是界面这么简单 。这一层有时候称为接入层 。在这一层 , 动态资源和静态资源应该分离 , 静态资源应该在接入层做缓存 , 使用CDN进行缓存 。也应该UI和API分离 , 界面应该通过组合API进行数据拼装 。API会通过统一的API网关进行统一的管理和治理 , 一方面后端组合服务层的拆分对APP是透明的 , 一方面当并发量比较大的时候 , 可以在这一层实现限流和降级 。
为了支撑这六个层次 , 在左侧是一些公共能力 。
持续集成和持续发布是保证微服务拆分过程中的快速迭代 , 以及变更后保证功能不变的 , 不引入新的Bug 。
服务发现和服务治理是微服务之间互相的调用 , 以及调用过程中出现异常情况下的熔断 , 限流 , 降级策略 。
大数据和人工智能是通过收集各个层面的数据 , 例如用户访问数据 , 用户下单数据 , 客服询问数据等 , 结合统一的中台 , 对数据进行分析 , 实现智能推荐 。
监控是基础设施的监控和应用的监控 , 发现资源层面的问题以及应用调用的问题 。
【云架构技术栈介绍】
推荐阅读
- 阿里架构师分享技术干货Spring+Redis+SpringBoot+Nginx等实践
- 云南民族特色茶叶罐别有风范
- 赵云万万不可重用,到底是为什么? 刘备为什么不重用赵云
- 甜瓜栽培技术要点有哪些 甜瓜种植技术
- dubbo服务治理架构与原理
- Java后端精选技术:谈谈 API 网关
- 一个老程序员的忠告:千万不要一辈子靠技术生存
- 新浪微博应对日访问量百亿级的缓存架构设计
- 360搜索的百亿级网页搜索引擎的架构设计与实现
- 美团外卖系统架构演进与系统稳定性
