[ 微服务框架原理与治理| 青训营笔记 ]
这是我参与「第五届青训营」伴学笔记创作活动的第 9天
零、前言:
记个笔记顺便(恰青豆还是有很多不完善也有可能对的地方还请大佬们指正
一、本堂课重点内容:
- 微服务框架介绍
- 微服务架构原理及特征
- 核心服务治理功能
- 服务治理实战
二、详细知识点介绍:
9.1 微服务框架介绍
演变历史:单体 -> 垂直应用 -> 分布式架构 -> SOA 架构 -> 微服务架构 -> service mesh
架构概览:
核心要素:服务治理,可观察性,安全性
9.2 微服务架构原理及特征
核心概念:
- 服务 -- 一组具有相同逻辑的运行实体
- 实例 -- 一个服务中,每个运行实体即为一个实例
HDFS 一文了解 HDFS 及其组成框架 不是微服务
服务间通信 -- 网络传输
服务注册与发现
如何调用一个目标服务的地址
新增一个统一的服务注册中心,用于储存服务名到服务实例的映射 hashmap
服务上线,下线流程
下线:先将注册中心的记录删掉,等流量完成后删除实例
上线:先上线实例,健康检查实例是否可用,注册中心添加记录
流量特征:
终端用户 --http-> 负载均衡 --http-> gateway --rpc-> 内容服务 --rpc-> 公共服务
9.3 核心服务治理功能
服务发布 -- 让一个服务升级运行的代码的过程
难点:服务不可用,服务抖动,服务回滚
解决:
- 蓝绿部署 -- 将集群分为两个集群AB,将流量导入A升级B,然后同样升级A
- 灰度发布 -- 先上线一个新的实例,确认无误后上线一个下线一个
流量治理
基于地区,集群,实例,请求等维度对路径进行控制
负载均衡常见策略:绝对公平,一致性哈希,随机
稳定性治理
线上服务一定会出问题,硬件原因,网络攻击,,,,
限流,熔断,过载保护,降级
9.4 服务治理实战
重试的意义:网络抖动,负载高,,,重试可成功提高 SLA
降低错误率,降低长尾延时,容忍暂时性错误,避开下游故障
重试难点:
幂等性,重试风暴,超时设置
策略:
限制重试比例,防止链路重试,hedged request