微服务架构
1 什么是微服务架构
- 一种架构风格,将单体应用划分为一组小的服务,服务之间相互协作,实现业务功能
- 每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(通常是HTTP/JSON)
- 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署
- 很少有集中式的服务管理,每个服务可以使用不同的语言开发,使用不同的存储技术
- 基于有界上下文的,松散耦合的面向服务的架构
2 微服务架构适用性
2.1 什么时候开始考虑引入微服务
并不是所有组织和软件都适用微服务架构,应该以单块优先,当系统足够复杂时,再考虑逐步使用微服务架构,关于微服务架构与单体架构的在复杂性和生产力的对比如下:
刚开始就选择微服务架构,反而会导致生产力低于选择单体架构,随着系统的复杂度增加,可以选择微服务架构。
2.2 微服务组织架构
- 从传统职能型到跨职能产品型
微服务架构更适用于跨职能产品型组织,每个产品团队服务完整的产品开发周期,各产品间通过API统一调用。产品团队内负责整个产品的架构、设计、开发、Review、测试、部署、运行、支持。
3 中台战略
大中台,小前台:中台作为基础,前台可以快速创新和迭代。
4 微服务总体架构
4.1 服务发现机制
4.1.1 独立LB
服务由独立的LB进行请求的分发,服务发现依赖DNS。
4.1.2 进程内LB
服务发现和负载均衡集成在进程内的LB中,LB更新不方便。
4.1.3 主机独立进程LB
服务发现和负载均衡集成在业务主机中,独立进程运行,便于更新,但业务众多时,增加运维复杂性
服务网格运用的一种服务发现机制
4.2 微服务网关
4.3 微服务通信方式 RPC vs REST
5 微服务治理
微服务治理涉及众多非业务功能,主要为业务提供稳定的基础环境。
6 微服务监控系统
四层监控体系和监控分类
监控架构和主流技术栈
7 微服务调用链监控
- 调用链监控技术选型
- Trace调用链监控原理
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.