当前位置: 首页 > 知识库问答 >
问题:

构建可扩展的应用程序,而不仅仅是云就绪型应用程序

娄嘉石
2023-03-14

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

乍一看,这个需求看起来很简单,但是期望是应用程序必须100%可伸缩。我们讨论了各种解决方案和架构,但我们并不满意。我需要这个社区的成员提出设计和技术的解决方案。这不是我的专业任务,但这只是一项调查,旨在了解架构师对构建可扩展应用程序与只构建云就绪应用程序的看法,云就绪应用程序很容易扩展基础架构,而不是关注应用程序的可扩展性。

共有1个答案

华浩壤
2023-03-14

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

windows服务正在运行并轮询数据库,以查找要处理的新请求。你可以利用石英。NET来计划将处理请求的多个并行作业。此请求处理(处理excel文件和生成报告)被委托给负载平衡的WCF服务,因此您拥有的WCF越多,可以安排的并行Quartz作业就越多。如果请求得到处理,可以安排另一种类型的Quartz作业发送邮件。

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

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

 类似资料:
  • 如何执行一个完整的应用程序与根权限(不只是几个命令)? 我正在一个根深蒂固的Android设备上工作。 在android应用程序中,我需要播放通过接收的H.264流。我需要root权限才能打开(原始打开)。 相应的代码在JNI中。由于JNI代码和Java代码之间需要交换大量缓冲区,因此可执行方式()非常不方便。 JNI代码在与Java代码相同的进程上下文中执行。因此,向我的android进程授予r

  • 这是一个有点开放性的问题,但是,制作一个好的可扩展电子应用程序的好方法是什么?VSCode、Atom和许多其他软件都支持扩展,但它们的代码库太大,我无法理解到底发生了什么。我对Jupyterlab感到非常惊讶,据他们说,它包含一个小小的核心,而其他一切都只是它上面的扩展。所以我想知道如何构建这些应用程序。 我的具体问题是: 是否有创建可扩展架构的最佳实践 电子部分是如何“识别”延伸的?怎么装的?什

  • Atom和VisualStudio代码可能是迄今为止最大的电子应用程序,它们都具有很强的可扩展性,还有其他一些较小的例子,如N1。我的意思是,它们支持插件。 问题是:我想我会在谷歌上找到一些关于如何让电子应用程序可扩展的东西,或者那些很酷的“棒极了”列表上的东西,但是我什么也没找到。此外,深入研究这些应用程序的源代码需要一段时间。 我在寻找什么(或): 我不知道的内置功能 类似于电子可扩展的库(假

  • 我正在做一个项目,该项目将有许多JavaFX应用程序,这些应用程序具有相似但又足够不同的功能,因此我创建了一个抽象基类来扩展Application以处理常见的功能并指示它们需要做什么,还创建了一系列具体的类来扩展这些功能。然而,当我试图跑的时候,我得到 应用程序构造函数java.lang.Reflect.InvocationTargetException位于java.base/jdk.intern

  • 问题内容: 是否可以使用Java 而非 JavaScript 构建Chrome扩展程序?(我在Eclipse IDE中使用Java SE。) 问题答案: Chrome扩展程序必须运行JavaScript。但是,您可以使用Google Web Toolkit 将Java编译为JavaScript。

  • 过去,我在玩Node。js只在我的本地机器上,所以我只有使用单进程Node的经验。js应用程序。现在,我想创建一个可以在web上发布的web应用程序。 这个web应用程序有点像多人游戏——使用Socket。IO用于客户端-服务器通信,Express用于处理HTTP请求,grunt用于任务管理,等等——我希望使用其他NPM包来处理各种任务。 我想将此应用程序的架构设计为 < li >实现水平可伸缩性