系统架构设计 -- 微服务架构原理与治理实践 分布式架构 、SOA面向服务架构、微服务架构原理特征、核心服务治理、流量治理、负载均衡

微服务架构原理与治理实践

1. 微服务架构介绍

  • 系统架构演变历史:
    在这里插入图片描述

  • 分布式架构

    抽出业务无关的公共模块,但是服务模块 bug 会导致全站瘫痪,调用关系复杂

在这里插入图片描述

  • SOA 架构

    面向服务, 服务注册与发现,但是整个系统设计是中心化,需要从上至下设计,重构困难
    在这里插入图片描述

  • 微服务架构

    彻底的服务化,业务独立设计,自下而上,故障隔离,但是治理,运维难度增加,以及安全性挑战。在这里插入图片描述

    核心要素:

    1. 服务配置和治理

      服务注册、服务发现、负载均衡、扩缩容、流量治理、稳定性治理

    2. 链路追踪和监控(可观测性)

      日志采集、日志分析、监控打点、监控大盘、异常报警、链路追踪

    3. 安全

      身份验证、认证授权、访问令牌、审计、传输加密、黑产攻击

2. 微服务架构原理及特征

2.1 基本概念

  • 服务(service)

    一组具有相同逻辑的运行实体。

  • 实例(instance)

    一个服务中,每个运行实体即为一个实例。

  • 实例与进程的关系

    实例与进程之间没有必然对应关系,可以一个实例可以对应一个或多个进程(反之不常见)。

  • 集群(cluster)

    通常指服务内部的逻辑划分,包含多个实例。

  • 常见的实例承载形式

    进程、VM、k8s pod ……

  • 有状态/无状态服务

    服务的实例是否存储了可持久化的数据(例如磁盘文件)。

  • 服务间通信

    HTTP/ RPC/Thrift

在这里插入图片描述

2.2 服务注册与发现

  • DNS – 一个域名可以注册多个不同的 IP

    ​ 但是 DNS 不支持负载均衡(一般选择第一个IP)、不支持服务实例探活检查 ,域名无法支持配置端口(一个服务占了一个端口)
    在这里插入图片描述

  • 服务注册中心

    基于DNS 思想,新增一个中间层服务注册中心,用于存储服务名到服务实例的映射。

    服务发现会实时刷新

在这里插入图片描述

2.3 流量特征

​ 统一网关入口、内网通信多数采用RPC(二进制形势传输)
在这里插入图片描述

3. 核心服务治理功能

3.1 服务发布

  • 难点

    服务不可用

    服务抖动

    服务回滚

  • 如何发布

    • 蓝绿部署 – 先升级一个集群,再切换

      简单,稳定,但是有一半资源不可用

在这里插入图片描述

  • 灰度发布(金丝雀发布)-- 加一个新服务,再减一个老服务

    但需要不停更新注册表

在这里插入图片描述

3.2 流量治理

​ 流量可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行选择。

在这里插入图片描述

3.3 负载均衡

负责分配请求再每个下游实例上的分布

常见的 Load Balance 策略:

  • Round Robin
  • Random
  • Ring Hash
  • Least Request

3.4 稳定性治理

网络攻击、流量突增、机房故障等

治理方案:

  • 限流
    在这里插入图片描述

  • 熔断

    熔断冷却,过段时间,会再次请求重连
    在这里插入图片描述

  • 过载保护

    cpu 过载,拒绝服务。
    在这里插入图片描述

  • 降级

    保证重要的服务进行处理,等级低的服务被拒绝

在这里插入图片描述

4. 服务治理实践

4.1 重试

​ 重试可以避免点偶发的错误,提高 SLA(Service-Level Agreement), 但默认不用

  • 降低错误率
    假设单次请求的错误概率为 0.01,那么连续两次错误概率则为 0.0001,

  • 降低长尾延时
    对于偶尔耗时较长的请求,重试请求有机会提前返回。

  • 容忍暂时性错误

    某些时候系统会有暂时性异常(例如网络抖动),重试可以尽量规避。

  • 避开下游故障实例
    一个服务中可能会有少量实例故障(例如机器故障),重试其他实例可以成功。

图片均来自字节青训营课程,博客作为自己学习记录,如有侵权,麻烦联系删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值