N层架构将应用程序划分为逻辑层和物理层。层是分离责任和管理依赖关系的一种方法。每一层都有特定的职责。上层可以使用下层中的服务,但反之亦然。
层在物理上是分开的,在不同的机器上运行。一个层可以直接调用另一个层,或者使用异步消息传递。虽然每个层可能位于其自己的层中,但这不是必需的。多个层可能位于同一层上。物理分离层提高了可伸缩性和弹性,并增加了额外网络通信的延迟。
N层架构可以有两种类型:
- 在封闭层架构中,一个层只能立即调用下一层。
- 在开放层架构中,一个层可以调用它下面的任何层。
封闭层架构限制了层之间的依赖关系。然而,如果一层可以随意将请求传递给下一层,则可能会产生不必要的网络流量。
N层架构的类型
让我们看看N层架构的一些示例:
三层架构
三层广泛使用,由以下层组成:
- 表示层:处理用户与应用程序的交互。
- 业务逻辑层:从应用程序层接收数据,根据业务逻辑对其进行验证,并将其传递给数据层。
- 数据访问层:从业务层接收数据,并对数据库执行必要的操作。
两层架构
在这种架构中,表示层在客户端上运行,并与数据存储进行通信。客户端和服务器之间没有业务逻辑层或直接层。
单层或一层架构
这是最简单的方法,因为它相当于在个人计算机上运行应用程序。应用程序运行所需的所有组件都位于单个应用程序或服务器上。
优点
以下是使用N层架构的一些优点:
- 提高可用性。
- 更好的安全性,因为层可以像防火墙一样工作。
- 单独的层允许我们根据需要扩展它们。
- 维护方便,因为不同的人可以管理不同的层。
缺点
以下是N层架构的一些缺点:
- 增加了整个系统的复杂性。
- 随着层数的增加,网络延迟增加。
- 花费多,因为每一层都有自己的硬件成本。
- 难以管理网络安全。