这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
1.什么是架构
架构,又称软件架构,
- 是有关软件整体结构与组件的抽象描述
- 用于指导软件系统各个方面的设计
- 个人的理解就是房子的地基
单机架构
- 软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
优点:简单
缺点:运维需要停服
个人理解:把所有东西都部署到一台机器上的话,那台机器挂了,那么整个服务都宕机了!非常危险,所以这种单机架构不适合大企业运用。故业界普遍流行的是HA高可用集群~运用Zookeeper
单体架构,垂直应用|垂直切分
- 单体架构:分布式部署,就是把单机架构部署都熬部署到多个架构
- 垂直应用架构:按应用垂直切分的单体
- 优点:水平扩容,不需要停服运维
- 缺点:职责多带来的开发效率不够高,爆炸半径大
SOA,微服务|水平切分
SOA(Service-o riented Architecture)
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准
- 优点:耦合度低,各个服务互不干扰
- 缺点:服务间通讯需要团队协调,测试更加困难了 微服务架构:SOA的去中心化演进方向
演进方向:
- 微服务化
- 引入消息队列削峰、解耦
- 离在线链路切分
- 梳理强弱依赖