什么是单体架构
一个归档包(例如war格式)包含所有功能的应用程序,通常称为单体应用,而架构单体应用的方法论,就是单体应用架构
单体架构存在的问题
- 复杂性高:单体应用整个项目包含的模块非常多,模块的边界模糊,依赖关系不明确,代码质量参差不齐
- 技术债务:随着时间的推移,需求变更和人员迭代,会逐渐形成应用程序的技术债务,并且越积越多
- 部署频率低:随着代码增多,构建和部署的时间也会增多,每次部署都要重新部署整个项目
- 可靠性差:某个应用有bug,可能会导致整个应用崩溃
- 扩展能力受限:单体应用只能作为一个整体应用进行扩展,无法根据业务模块的需要进行伸缩
- 阻碍技术创新:单体应用往往使用的技术平台或方案解决所有的问题,团队中的每个成员都必须使用相同的额开发语言和架构
如何解决单体应用架构的问题
微服务架构可以有效解决上面的问题
什么是微服务架构
微服务架构就是一种将单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间采用轻量级通信机制(通常用http资源api),这些服务围绕业务能力构建并且可通过全自动部署机制独立部署
特性:
- 每个微服务可独立运行在自己的进程中
- 一系列独立运行的微服务共同构建起整个系统
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能
- 微服务之间通过一个轻量的通信机制进行通信,例如通过restful api进行调用
- 可以使用不同的语言与数据存储技术
- 全自动的部署机制<