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

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 越高
- 成本高(每层需要硬件)
- 网络安全管理更复杂