logo
Architecture Patterns

N-tier architecture

多层架构

N-tier architecture 把应用拆成逻辑层(layers)和物理层(tiers)。Layer 用来分离职责与依赖,每一层有明确责任。上层可以使用下层服务,下层不依赖上层。

n-tier-architecture

Tier 是物理隔离的,运行在不同机器上。一个 tier 可以直接调用另一个 tier,或用 async messaging。虽然每个 layer 可以部署在独立 tier,但不是必须,多个 layers 也可在同一 tier。物理隔离提升 scalability 与 resiliency,但也带来额外网络 latency。

N-tier architecture 有两种:

  • Closed layer:每层只能调用紧邻的下一层。
  • Open layer:每层可以调用任何下层。

Closed layer 限制依赖,但可能导致不必要的网络跳转,例如某一层只是转发给下一层。

Types of N-Tier architectures

3-Tier architecture

最常见的 3-Tier:

  • Presentation layer:处理用户交互。
  • Business Logic layer:接收数据,按业务规则验证并传给 data layer。
  • Data Access layer:负责与 database 交互。

2-Tier architecture

Presentation layer 运行在 client,直接与 data store 通信,中间没有 business logic layer。

Single Tier / 1-Tier architecture

最简单的模式,应用运行在一台机器上,所有组件都在同一 app/server 内。

Advantages

  • 提升 availability
  • 更好的安全隔离(层可视为 firewall)
  • 不同 tiers 可独立扩展
  • 维护性更好(不同团队负责不同层)

Disadvantages

  • 系统复杂度增加
  • tiers 越多,网络 latency 越高
  • 成本高(每层需要硬件)
  • 网络安全管理更复杂

相关练习题

N-tier architecture

暂无相关练习题