后端架构详解
本章主要是架构问题的深入了解,也是课堂上边听边记的,具体知识点还需要下来查阅更多资料来深入了解和思考;这里推荐《凤凰架构》这本书,书里面的内容很详细,深入浅出,推荐阅读。
架构初探——谁动了我的蛋糕
什么是架构
- 定义
- 重要性
单机:C10K Problem(经典问题)
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
SOA(Service-Oriented Architecture)
微服务架构:SOA的去中心化演进方向
企业级后端架构剖析
云计算
-
基础:虚拟化技术;编排方案
-
架构:
- IaaS:Infrastructure as a Service
- PaaS:Platform as a Service
- SaaS:Software as a Service
- FaaS:Function as a Serivce
云原生:之前对云原生一直很陌生,直到实习之后真正的接触到企业开发后才慢慢熟悉
- 弹性资源
- 微服务架构
- DevOps
- 服务网格 Service Mesh
业内后端架构面临的挑战
挑战:
- 基础设施层面
- 用户层面
离在线资源并池:降低物理资源成本
- 在线业务:IO密集、潮汐性、实时性
- 离线业务:计算密集、非实时性
自动扩缩容:降低业务成本
微服务亲和性部署:降低网络通信
流量治理:基于微服务中间件&服务网格的流量治理;提高微服务调用容错性、容灾、进一步提高开发效率,DevOps发挥到极致
CPU水位负载均衡:打平异构环境算力差异、为自动扩缩容提供正向输入;IaaS提供资源探针;服务网格提供动态负载均衡
后端架构实战
如何设计CPU水位负载均衡?
-
输入:
- 服务网格数据面:支持带权重的负载均衡策略
- 注册中心存储了所有容器的权重信息
- 宿主机提供容器的资源使用情况
-
关键点:
- 紧急回滚能力
- 大规模
- 极端场景
自适应静态权重:采集宿主机物理资源信息,调整容器注册的权重
-
优点
- 简单
- 完全分布式
- 微服务中间件无适配成本
-
缺点
- 无紧急回滚能力
- 缺乏运行时自适应能力
自适应动态权重:动态权重决策中心
- 缺点:过度流量倾斜可能会有异常情况
进一步,服务网格上报RPC指标
- 缺点:时序数据库压力大;决策中心职责越来越大
进一步,决策中心微服务化,引入消息队列,离在线链路切分,梳理强弱依赖