这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
1微服务架构介绍
(1)微服务架构的背景由来
演变
单体架构 优势:性能最高, 冗余小 劣势:debug 困难,模块相互影响,模块分工、开发流程
按照业务线垂直划分
优势:业务独立开发维护 劣势:不同业务存在冗余,每个业务还是单体
分布式架构(抽出业务无关的公共模块) 优势: 业务无关的独立服务 劣势:服务模块bug可导致全站瘫痪,调用关系复杂,不同服务冗余
SOA架构(面向服务)
优势:服务注册 劣势:整个系统设计是中心化的,需要从上至下设计,重构困难
微服务架构(彻底的服务化)
优势:开发效率,业务独立设计,自下而上,故障隔离 劣势:治理、运维难度,观测挑战,安全性,分布式系统
(2)架构概览
(3)基本要素
2微服务架构原理及特征
(1)微服务架构的基本组件
服务 (service)---组具有相同逻辑的运行实体 实例 (instance)-----一个服务中,每个运行实体即为一个实例。
实例与进程的关系-----实例与进程之间没有必然对应关系,可以一个实例可以对应一个或多个进程 (反之不常见) 集群 (cluster)------通常指服务内部的逻辑划分,包含多个实例
常见的实例承载形式-----进程、VM、k8s pod
有状态 / 无状态服务-----服务的实例是否存储了可持久化的数据(例如磁盘文件)
(2)工作原理
(3)流量特征
统一网关入口
内网通信多数采用RPC
网状调用链路
3核心服务治理功能
(1)流量治理
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制。
(2)服务均衡
负载均衡 (Load Balance)负责分配请求在每个下游实例上的分布
常见的 LB 策略
Round Robin
Random
Ring Hash
Least Request
(3)稳定性治理
微服务架构中典型的稳定性治理功能 限流 熔断 过载保护 降级
4.字节跳动服务治理实践
(1)对请求重试策略的探索及实践字节跳动在微服务架构稳定性治理中.
重试的意义及难点
应对重试风暴的策略