我试图理解设计大型应用程序的思考过程。
假设我有一个客户需要一个新的客户网站,他预计每天会有40,000个订单,已经有25,000个用户。在设计应用程序时,如何确定是否需要采用分布式架构?我应该使用Web Farm等技术吗?
我以前主要构建过两层(物理)应用程序,我真的想提高我的理解能力。
任何见解都将非常有用!
我试图理解设计大型应用程序的思考过程。
假设我有一个客户需要一个新的客户网站,他预计每天会有40,000个订单,已经有25,000个用户。在设计应用程序时,如何确定是否需要采用分布式架构?我应该使用Web Farm等技术吗?
我以前主要构建过两层(物理)应用程序,我真的想提高我的理解能力。
任何见解都将非常有用!
从一开始就对你的新应用程序进行负载测试。
自从大规模设计无法给出您期望的结果(15年以上的经验)之后,最好的做法是为变化设计并让正确的架构从您的需求中出现。
根据您的描述,采用敏捷方法论来进行此项目,并使用其实践指导您的项目取得成功。其中一个重要的实践是为您所做的所有工作制定“完成定义”。在您的DoD中,明确地列出以下项目:
当您开始开发时,首先要做的事情之一当然是设置环境以能够运行这样的负载测试。如果从未发生过这种情况,您早在项目的早期就已经知道会遇到麻烦。至少每个迭代都进行负载测试,您将知道您的架构是否可以处理规模需求。
希望对您有所帮助。
如果你正在编写 .Net 应用程序,将其放在 Azure 中(云端啊,云端!;)。
这将帮助你获得所需的处理能力。只要不犯任何愚蠢的错误,应用程序就可以正常工作。
至少部分地解决扩展问题可以通过负载均衡来实现。
并发可能是您真正的问题。分布式事务是一种笨重的工具,但如果没有额外的思考它不会解决每个用例。
一些金融公司对于 Web 服务器直接访问数据库有额外的安全要求。