这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
微服务架构
系统架构是什么?
系统架构是指一组组件、连接以及它们之间的关系,它们组合在一起构成一个系统,满足特定的需求和目标。
系统架构的目的是提供一个清晰的视图,使系统的设计和实现更容易理解和维护。
系统架构可以应用于多种不同的领域,如软件工程、计算机系统、基础设施、业务流程等。
系统架构演进的原因:
- 互联网的爆炸性发展
- 硬件设施的快速发展
- 需求复杂性的多样化
- 开发人员的急剧增加
- 计算机理论及技术的发展
演变历史过程:
微服务架构概览与核心要素:
核心要素:
- 服务治理
- 可观测性
- 安全
微服务架构原理及特征
服务间通信:
对于单体服务,不同模块通信只是简单的函数调用;
对于微服务,服务间通信意味着网络传输。
服务注册及发现:
调用一个目标服务的地址(ip:port):新增一个统一的服务注册中心,用于存储服务名到服务实例的映射,与DNS类似,引入一个中间层。
流量特征:
- 统一网关入口
- 内网通信多数采用PRC
- 网状调用链路
从流量角度看微服务架构的方法有以下几种:
- 流量监控
- 流量分析
- 流量分配
- 流量访问控制
核心服务治理功能
服务发布:
难点:
- 服务不可用
- 服务抖动
- 服务回滚
蓝绿部署:
蓝绿部署是一种持续交付和部署方法,旨在在生产环境中提供更稳定和安全的部署过程。
蓝绿部署的优势包括:
- 提高可用性:通过保证生产环境始终有一个稳定的版本,可以提高系统的可用性。
- 降低风险:通过在绿环境中先验证新版本,可以降低因部署问题导致生产环境不稳定的风险。
- 提高效率:通过快速回滚等机制,可以提高部署的效率和效果。
金丝雀发布:
金丝雀发布是一种持续交付和部署方法,旨在通过小规模的实验来评估新版本的影响和风险。
金丝雀发布的优势包括:
- 提高效率:通过小规模的部署,可以更快地评估新版本的影响。
- 降低风险:通过在生产环境中评估新版本,可以降低因部署问题导致生产环境不稳定的风险。
- 提高效果:通过小规模的试验,可以更好地了解新版本的表现。
流量治理:
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制。
负载均衡Load Balance:
负载均衡,可以帮助提高网络系统的可用性、稳定性和可配置性。
负载均衡负责分配请求在每个下游实例上的分布。
负载均衡还可以通过支持多种负载均衡策略,例如轮询、加权轮询和最小连接数策略等,以提高系统的灵活性和可配置性。
稳定性治理:
微服务架构中典型的稳定性治理功能:
- 限流
- 熔断
- 过载保护
- 降级