这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
微服务
-
系统架构的演变历史:单体架构 => 垂直应用架构=>分布式架构=>SOA架构=>微服务架构
-
优势:开发效率,业务独立设计,自下而上,故障隔离
-
劣势:治理、运维难度,观测挑战,安全性,分布式系统
-
微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。
微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。
微服务架构的核心要素
-
服务治理
- 服务注册
- 服务发现
- 负载均衡
-
可观测性
- 日志采集
- 日志分析
- 监控打点
-
安全
- 身份验证
- 认证授权
- 访问令牌
基本概念
- 服务:一组具有相同逻辑的运行实体
- 实例:一个服务中,每个运行实体即为一个实例
- 集群:通常指服务内部的逻辑划分,包含多个实例
服务注册与发现
- 新增一个统一的服务注册中心,用于存储服务名到服务实例的映射
- 服务上线和下线时,需要更改服务发现的服务数据
核心服务治理功能
-
服务发布:指让一个服务升级运行新代码的过程
- 服务发布的难点:服务不可用,服务抖动,服务回滚
- 蓝绿部署:简单,稳定,但需要两倍的资源
- 灰度发布(金丝雀发布)
- 流量治理
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端的流量进行治理。
-
负载均衡
负责分配请求在每个下游实例上的分布
-
稳定性治理
线上服务总是会出问题的,这与程序的正确性无关。
网络攻击、流量突增、机房断电、光纤被挖、机器故障、网格故障
-
稳定性治理功能
限流、熔断、过载保护、降级
-