如何理解单体架构
· 阅读需 8 分钟
单体架构是构建应用程序的一种传统方式。这种软件架构原则有利有弊。一方面,它可以带来快乐。另一方面,它也会让人失望。让我们回顾一下它在软件架构中的地位。
单体架构概览
典型的单体架构如上图所示。其主要特点是所有服务(用户服务、航班服务和计费服务)都位于一个单一的交付物(Spring Boot 的 jar 文件)中。这些服务紧密耦合(尽管它们的功能完全不同),并使用相同的数据库。
图片展示了目前最常用的方法。实际上,在单体架构中,用户界面部分可以与后备服务打包在一起。因此,用户界面、用户服务、航班服务和计费服务都位于同一个交付品中。
为便于扩展,可部署多个相同的交付单元。负载平衡器负责将请求路由到已部署的单体服务。
单体架构的优势
开发简单
单体方法是构建应用程序的标准方式。无需额外知识。所有源代码都集中在一处,可快速理解。
调试简单
由于所有代码都集中在一处,因此调试过程非常简单。您可以轻松地按照请求的流程找到问题所在。
测试简单
您只需测试一个服务,没有任何依赖关系。一切通常都很清楚。
部署简单
只需部署一个部署单元(如 jar 文件)。没有任何依赖关系。在用户界面与后台代码打包的情况下,不会出现任何破坏性更改。所有内容都在一个地方存在和更改。
应用程序演进简单
从业务逻辑的角度来看,应用程序基本上没有任何限制。如果新功能需要某些数据,这些数据已经存在。
横向关注点和定制只使用一次,交叉关注点只用一次
例如,安全、日志、异常处理、监控、选择和设置 tomcat 参数、设置数据源连接池等。
简化新团队成员的入职培训
源代码位于一个地方。新团队成员可以轻松调试一些功能流程,熟悉应用程序。