三层架构的出现,解决了系统间调用复杂,职责不清的问题,有效的降低了层与层之间的依赖关系,这是传统三层的优势。
但是虽然三层架构将系统在逻辑上分成了三层,但它并不是物理上的分层。也就是说,对于不同层的代码而言,经理编译,打包,部署之后,所有的代码最终还是运行在同一个进程中。
对于这种功能集中,代码中心化,一个发布包,部署后运行在同一进程中的应用程序,我们称之为单块架构应用。
随着业务的不断扩大,需求功能的持续增加,单块架构已经难满足业务快速变化的需要。一方面,代码的可维护性,扩展性,灵活性在降低;另一方面,系统的修改成本,构建以及维护成本在显著增加。因此,单块架构应用的改造与重构势在必行。