Tho*_* Li 6 architecture web-applications separation-of-concerns n-tier-architecture
在传统意义上,N层意味着将应用程序分成"层"并将每个"层"放在不同的服务器上.这至少有三个原因:
保养:
a)代码维护:更容易进行错误修复和功能添加.
b)硬件维护:关闭一台服务器不会中断其他层的服务.
性能:一台服务器通常不够快,无法同时处理Web请求,业务逻辑计算和数据库/文件访问.
可伸缩性:特别是水平可伸缩性
a)容错:每层具有多于1个物理服务器的能力意味着当1个服务器关闭时,应用程序仍然可以作为一个整体运行.
b)负载平衡:拥有多个层实例有助于服务大量请求.
如今,硬件和网络足够快,可以在单个服务器上每秒处理数千个请求.此外,IT现在的热门话题是"整合".因此,即使将应用程序拆分为层,它们也可能最终托管在单个服务器上的虚拟机上.
我认为现在当人们谈论N层架构时,他们正在讨论应用程序中关注点的分离.它更像是逻辑分离而不是物理分离.我认为只要我们实现良好的关注点分离和松散耦合,应用程序就不必是N层.似乎许多程序员认为N层架构是每个Web应用程序必须遵守的黄金标准.
那么,现在你的N层架构是什么?