1 什么是微服务架构

  • 一种架构风格,将单体应用划分为一组小的服务,服务之间相互协作,实现业务功能
  • 每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(通常是HTTP/JSON)
  • 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署
  • 很少有集中式的服务管理,每个服务可以使用不同的语言开发,使用不同的存储技术
  • 基于有界上下文的,松散耦合的面向服务的架构

2 微服务架构适用性

2.1 什么时候开始考虑引入微服务

并不是所有组织和软件都适用微服务架构,应该以单块优先,当系统足够复杂时,再考虑逐步使用微服务架构,关于微服务架构与单体架构的在复杂性和生产力的对比如下:
image.png
刚开始就选择微服务架构,反而会导致生产力低于选择单体架构,随着系统的复杂度增加,可以选择微服务架构。

2.2 微服务组织架构

  • 从传统职能型到跨职能产品型
    image.png

微服务架构更适用于跨职能产品型组织,每个产品团队服务完整的产品开发周期,各产品间通过API统一调用。产品团队内负责整个产品的架构、设计、开发、Review、测试、部署、运行、支持。
image.png

3 中台战略

大中台,小前台:中台作为基础,前台可以快速创新和迭代。
image.png

4 微服务总体架构

image.png

4.1 服务发现机制

4.1.1 独立LB

服务由独立的LB进行请求的分发,服务发现依赖DNS。
image.png

4.1.2 进程内LB

服务发现和负载均衡集成在进程内的LB中,LB更新不方便。
image.png

4.1.3 主机独立进程LB

服务发现和负载均衡集成在业务主机中,独立进程运行,便于更新,但业务众多时,增加运维复杂性

服务网格运用的一种服务发现机制
image.png

4.2 微服务网关

image.png

4.3 微服务通信方式 RPC vs REST

image.png

5 微服务治理

微服务治理涉及众多非业务功能,主要为业务提供稳定的基础环境。
image.png

6 微服务监控系统

  • 四层监控体系和监控分类
    image.png

  • 监控架构和主流技术栈

image.png

7 微服务调用链监控

  • 调用链监控技术选型

image.png

  • Trace调用链监控原理

image.png