0

最近,我与一位以经验丰富的建筑师而闻名的建筑师进行了讨论。讨论围绕在 Web Farm 中运行的多租户基于 Web 的应用程序的理想架构和设计。该应用程序的唯一工作是允许用户上传系统正在处理的“n 个”Excel 文件以生成非常复杂的报告。处理这些文件需要很长时间(每个一个小时,让我们把它作为一个约束)。因此,上传后的用户等待系统通知下载生成的报告。

乍一看,这个要求看起来很简单,但期望应用程序必须是 100% 可扩展的。我们与架构一起讨论了各种解决方案,但我们没有发现它令人满意。我需要这个社区的成员与技术一起提出设计解决方案。这不是我的专业任务,而只是一项调查,以了解架构师对构建可扩展应用程序的看法 VS 只是云就绪应用程序,其中易于扩展基础架构而不是专注于应用程序可扩展性。

4

1 回答 1

0

用户可以通过网站上传excel文件。他们的凭据也通过了。后端在数据库中注册这个请求,并返回请求 id(一个 Guid 或其他东西)。该过程结束。

Windows 服务正在运行并轮询数据库,寻找要处理的新请求。您可以使用 Quartz.NET 来安排一些将处理请求的并行作业。这种请求处理(处理 excel 文件和生成报告)被委托给负载平衡的 WCF 服务,因此您拥有的 WCF 服务越多,可以调度的并行 Quartz 作业就越多。如果请求已被处理,则可以安排另一种类型的 Quartz 作业发送邮件。

站点定期轮询以查看请求(或特定请求)的状态和进度;并管理它们。对于已完成的请求,可以下载报告。

我认为这是一个非常可扩展的解决方案,也是松耦合的。

于 2013-05-02T17:57:10.540 回答