Spring Cloud
微服务产生的背景
单体应用存在的问题:
- 随着业务的发展,开发变得越来越复杂。
- 修改、新增某个功能,需要对整个系统进行测试,重新部署。
- 一个模块出现问题,很可能导致整个系统崩溃。
- 多团队同时对数据进行管理,容易产生安全漏洞。
- 各个模块使用同一种技术框架,局限性太大,很难根据业务选择最适合的技术架构。
- 模块内容太复杂,如果员工离职,可能需要很长时间才能完成任务交接。
为了解决上述问题,微服务架构应运而生,简单来说,微服务就是将一个单体应用拆分成若干个小型服务,协同完成系统功能的一种架构模式,在系统架构层面进行解耦合,将一个复杂问题拆分成若干个简单问题。
这样的好处是对于每一个简单问题,开发、维护部署的难度就降低了很多,可以实现自治,可以自主选择最适合的技术框架,提高了项目开发的灵活性。
微服务架构不仅是简单的拆分,拆分之后的各个微服务之间还要进行通信,否则就无法协同完成需求。
微服务之间只需要制定统一的协议即可,至于每个微服务使用什么技术框架来完成,统统不需要关心。
这种松耦合的方式使开发、部署都变得更加灵活,同时系统更容易拓展,降低了开发、运维的难度。