前言
从本节课开始我们将进入学习SpringCloud Micro-Service阶段。本节我们将进入了解和学习一下有关Micro-Service Basic Points.
架构
在软件/WebService开发的中关于架构的说法业内一般分为单体架构/SOA/微服务,不过随着技术堡垒的突破和发展,在未来肯定会出现更为优秀的架构。
单体
- 定义: 一个归档包例如war格式包含了应用所有功能的应用程序我们通常称之为单体应用架构单体应用的方法论我们称之为单体应用架构。
- 缺点
- 复杂性高
整个项目包含的模块非常多,模块的边界模糊,依赖关系不清晰,代码质量参差不齐,整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个BUG都会造成隐含的缺陷。 - 技术债务
随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。已使用的系统设计或代码难以修改,因为应用程序的其他模块可能会以意料之外的方式使用它。 - 部署频率低
随着代码的增加,构建和部署的时间也会增加。而在单体应用中,每次功能的变更或缺陷的修复都会导致我们需要重新部署整个应用。全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低,从而又导致两次发布之间会有大量功能变更和缺陷修复,出错概率较高。 - 扩展能力受限
单体应用只能作为一个整体进行扩展
- 复杂性高