架构初探 | 青训营笔记

75 阅读1分钟

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

架构初探

1、架构的定义:

是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。

2、单机架构:

把软件系统对外提供的所有功能,都实现在一个进程里,并部署在一台机器上。

优点:简单

问题:

(1)C10K problem(在同时连接到服务器的客户端数量超过 10000 个的环境中,即便硬件性能足够, 依然无法正常提供服务)

(2)运维需要停服。

image.png

3、单体、垂直应用架构(垂直切分)

单体架构:分布式部署

垂直应用架构:按应用垂直切分的单体

优点:

(1)水平扩容

(2)运维不需要停服

问题:

(1)职责太多,开发效率不高

(2)爆炸半径大

image.png

image.png

4、SOA、微服务(水平切分)

SOA(Service-Oriented Architecture,面向服务架构):

(1)将应用(进程)按照不同功能单元切分为服务

(2)定义服务之间的通信标准

微服务架构:SOA的去中心化演进方向

问题:

(1)数据一致性

(2)高可用

(3)治理

(4)解耦和过微

image.png

image.png

5、小结

架构演进的初衷:满足软件迭代诉求,提高迭代效率

架构演进的思路:垂直切分——分布式,水平切分——分层/模块化