微服务架构核心(三)- 微服务技术架构体系

微服务架构的名字里虽然有个”微”,但它涉及的整体架构体系可一点也不”微”,微服务架构除了业务代码的开发以外,还需要很多的支撑服务。

每个公司都有自己的微服务架构体系,虽然在细节上有很多不同,但是整体的思路是类似的,下图展示了一个比较成熟的微服务架构体系。

2

这个体系按照请求接入,由外到内的顺序,将整体架构分为接入层、网关层、业务服务层、支撑服务层、平台服务层和基础设施层六层。

接入层

最外层是接入层,通过负载均衡接入请求到内部平台,这些请求既有外部互联网请求,也有公司内部其它系统的请求。

网关层

网关层是微服务架构的核心层,是业务层接收外部流量的屏障。

网关层的主要作用:

  1. 对接入的流量进行反向路由。
  2. 拦截所有的请求,通过横切的方式完成熔断、限流、安全认证等功能。
  3. 对请求进行分类,例如内部网关、H5网关、图片网关。

业务服务层

我们常说的微服务就集中在这一层,这里包含了系统核心的业务逻辑。业务服务层可以简单的划分为聚合层与基础层。

基础层提供单一简单的基础服务,例如人员、订单、支付。聚合层则是将不同的基础层聚合在一起,完成复杂的业务处理。

支撑服务层

支撑服务层提供非业务功能,以支撑业务服务层和网关层软件的正常运行。

核心模块有服务注册发现、集中配置、容错限流、认证授权、日志聚合、监控告警、后台中间件(异步队列、缓存、数据库、任务调度)

平台服务层

平台服务层站在系统平台的角度上,处理系统发布、资源调度整合等功能。

核心模块有发布系统、资源调度、容器镜像治理、资源治理、IAM。

基础设置层

这一层与软件关系不大,主要是支撑系统需要的硬件资源,包括计算、网络、存储、监控、安全、IDC等。

纵向能力

除了横向区分的六个层次以外,微服务中还有一些纵向能力需要我们关注。

例如微服务开发框架,提供标准的开发框架规范开发过程,统一开发标准。

持续交付流水线,提供从研发到测试,再到生产的持续交付能力。

另外还有提升研发、测试效率的端到端的工具链,平常不断积累的工程实践以及规范等。

总结

微服务架构涉及功能模块众多,并不是每一个公司都有能力搭建一套完整的微服务架构。

当我们从零开始搭建微服务架构时,可以优先考虑网关层、业务服务层以及支撑服务层中的注册发现、集中配置、认证授权这些核心功能,其它的功能模块再逐步完善。

另外我们也可以选用已经比较成熟的架构来快速搭建微服务,例如SpringCloud。

最后大家可以结合文章的架构图思考一下,自己公司目前的微服务架构,已经具备了图中的哪些功能,还有哪些功能是可以进一步完善或者新增的?

上篇微服务架构核心(四)- 微服务组织架构
下篇微服务架构核心(二)- 微服务的利与弊