Mar*_*rco 16 .net c# architecture asp.net distributed
在设计大型应用程序时,我正试图了解思考过程.
假设我有一个客户需要一个新的客户网站,他估计每天有40,000个订单,已有25,000个用户群.在设计应用程序时,您如何确定是否需要分布式架构?我应该使用网络农场吗?等等
我过去主要构建2层(物理)应用程序,我真的想提高我的理解力.
任何见解都会很棒!
从一开始就加载测试新应用程序.
因为做一个大型设计的前期永远不会给你你期望的结果(超过15年的经验),最好的办法是设计变革,让你的需求正确的架构.
根据您的描述,为该项目采用敏捷方法,并使用其实践指导您的项目取得成功.其中一项重要做法是为您所做的所有工作制定"完成定义".显然,在你的国防部你将拥有这个项目:
正如您将开始开发一样,首先要做的事情之一就是设置环境以便能够运行这样的负载测试.如果这种情况从未发生过,那么您在项目的早期就已经知道您将遇到麻烦.根据需要进行多次负载测试(至少每次冲刺一次),您将知道您的体系结构可以/可以处理规模要求.
HTH
这将取决于许多其他因素,而不仅仅是每天的订单数量。它将在哪里举办?该物理架构是什么样的?除了电子商务之外,该应用程序还可以做什么?它是否需要与其他应用程序集成(当然除了支付网关之外)?ETC。
在正确的云托管环境(例如 VMware)中,可以动态扩展的简单两层应用程序对于电子商务网站来说效果很好。正确的本地托管环境(负载平衡的网络场)中的简单两层应用程序也应该适用于电子商务网站。这就是纵向扩展(可能隐藏在虚拟化中,最终导致规模扩大)和横向扩展(添加更多服务器)之间的区别。
分布式架构允许您将系统负载(例如订单处理)分配给(可能)位于负载均衡器后面的 1:M 服务器。这是一种非常常见的方法,对于电子商务网站也非常有效。
在我看来,没有一种架构或系统设计适合每一种模式。适合每种模式的最接近的架构(同样,我的观点)将是面向服务的架构。如果所有业务流程和逻辑都是服务(并且设计正确),那么无论您的需求如何变化,无论您的托管环境是什么样子或发生变化,无论您有什么集成要求,您的系统都可以轻松处理它或没有变化。
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |