这是我参与「第五届青训营 」伴学笔记创作活动的第6天
架构初探
1、架构的定义:
是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。
2、单机架构:
把软件系统对外提供的所有功能,都实现在一个进程里,并部署在一台机器上。
优点:简单
问题:
(1)C10K problem(在同时连接到服务器的客户端数量超过 10000 个的环境中,即便硬件性能足够, 依然无法正常提供服务)
(2)运维需要停服。
3、单体、垂直应用架构(垂直切分)
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
优点:
(1)水平扩容
(2)运维不需要停服
问题:
(1)职责太多,开发效率不高
(2)爆炸半径大
4、SOA、微服务(水平切分)
SOA(Service-Oriented Architecture,面向服务架构):
(1)将应用(进程)按照不同功能单元切分为服务
(2)定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
问题:
(1)数据一致性
(2)高可用
(3)治理
(4)解耦和过微
5、小结
架构演进的初衷:满足软件迭代诉求,提高迭代效率
架构演进的思路:垂直切分——分布式,水平切分——分层/模块化