Go 后端架构
1. 初识架构
1.1 架构定义
- 是有关软件整体结构与组件的抽象描述
- 用于指导软件系统各个方面的设计
1.2 架构发展
架构演进的思路:垂直切分——分布式,水平切分——分层/模块,以满足软件迭代诉求,提高迭代效率。
- 单机架构
All in one,所有的东西都在一个进程里,部署在一个机器上。
优点:简单
缺点:运维需要停服,用户体验较差; 承载能力有限。
- 单体架构
在单机架构的基础上,将进程部署到多个机器上。
优点:
具备水平扩容能力
运维不需要停服
缺点:
后端进程职责太多,越来越臃肿
爆炸半径较大,进程中一个很小的模块出现问题,都可能导致整个进程崩溃
- 垂直应用架构
在单机架构基础上,将进程按照某种依据切分开。比如,A 软件和 B 软件的后端原先采用单机架构部署,那就是一个进程部署在多个机器上;如果用垂直应用架构,可以将 A 和 B 的后端拆分为 A、B 两个进程,然后再按照单体模式的思路,部署在多个机器上。
优点:
一定程度上减少了后端进程职责
一定