一、单体应用
-
单体架构
一个war包打天下的应用架构,即为单体应用。war包内包含所有的功能模块,架构图如下:
-
单体架构的优点:
单体架构结构简单,在项目初期能够很好的满足需求,而且开发测试运维非常方便。
-
单体架构的缺点
单体应用部署慢、部署频率低:随着项目的迭代和功能的增加,代码越来越多,构建和部署的时间也会相应的增加;每次功能的变更或缺陷修复都需要部署整个应用,全量部署的方法,耗时比较长,涉及范围广,上线风险比较大,从而导致部署频率较低。
单体应用无法按需扩展:如某一功能模块是IO密集型业务,达到性能瓶颈,无法拆分出来单独部署扩展。
阻碍技术创新发展:如某应用非常庞大,而且使用技术比较老旧,使用新技术替换的成本是非常大的。
二、何为微服务
微服务起源于Martin Fowler的 博客: