单体架构存在的问题
- 复杂性高,模块多,模块边界模糊,代码质量参差不齐,每次修改代码都心惊胆战。
- 技术人员更新快,不可能一直在一个公司,新入职人员可能会遇上离职人员的没有修复的bug。
- 随着单体应用功能越来越多,部署时间也会越来越长,出错概率比较高。
- 可靠性差,比如死循环导致整个应用的崩溃。 4 可靠性差,比如死循环导致整个应用的崩溃。
- 扩展能力受限,有的模块是计算密集型的,需要强大的cpu,有的是io密集型的,需要更大的内存,这些模块部署在一起,不得不做出硬件上的选择。
- 阻碍技术创新,比如一个项目使用Strus2构建的,现在换成SpringMVC,无疑会增加成本。 阻碍技术创新,比如一个项目使用Strus2构建的,现在换成SpringMVC,无疑会增加成本。