架构设计 | 青训营笔记

49 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

一、架构

image.png

单机

image.png

C10K问题:单机架构在一台机器上部署,会有瓶颈

单体架构

image.png

image.png

SOA、微服务 | 水平切分

面向服务架构:

对垂直应用架构做了一次水平切分。

image.png

二、企业级后端架构剖析

云计算

image.png

云原生

image.png

弹性资源

弹性计算资源类型

服务资源分类:

微服务:占用资源的量级比较小,可以快速完成承载的能力

大服务:占用资源的量级比较大

计算资源:

在线:热销榜单

离线:热销榜单更新

消息队列:

在线:有很大的吞吐量,削峰、解耦

离线:大数据分析

弹性存储资源类型

  • 经典:

    对象存储:

    大数据存储:

  • 关系型数据库:

  • 元数据存储:服务发现

  • NoSQL:KV存储

image.png

DevOps

软件交付,贯穿整个软件开发周期

结合自动化流程,提高软件开发,交付效率

微服务

通信标准:

  • HTTP:Restful API
  • RPC:thrift, gRPC

微服务中间件:帮助我们不用特别关注提供HTTP接口让别人调用我。

image.png

RPC vs HTTP 怎样选择:

  • 性能:RPC更好一些

  • 服务治理:RPC中间价天生具备一些,如超时,事务处理

  • 协议可解释性:HTTP具有比较好的可解释性,Payload,json

API服务之下通过Thtift提高服务的性能。

使用框架(中间件)即可,业务逻辑不必关心通信等。

KV缓存的数据持久化或与数据库的同步(更新),可以通过消息队列,从关系型数据库消费数据,更新KV缓存。

服务网格

image.png

三、企业级后端架构的挑战

image.png

image.png

自动扩缩容:利用在线业务潮汐性自动扩缩容

微服务亲合性部署:

image.png

四、实战

问题:CPU水位负载均衡

image.png