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

将web应用程序拆分为服务/模块以实现可扩展性

耿星雨
2023-03-14

我对如何开发大型Web应用程序有些怀疑。经过一番研究,我想到了一些想法:

1: 用能够处理大量并发请求的语言开发前端。将前端理解为负责将页面交付给客户的模块/服务。

2:使用Nodejs作为前端语言(Go语言不是这里的选项)。

3: AJAX将向后端模块发出请求,服务器必须重定向到适当的模块。

4:后端被分成模块/服务,使用技术(编程语言)更好地供每个模块/服务使用。

5:每个模块都有自己的服务器或一组服务器

我的问题是:

1: 这是开发大型可扩展系统的最佳方法吗?

2:如何重定向到组织服务器级别,以便将每个请求重定向到您的服务。因为每项服务都以最有效的方式工作?

嗯,试着在这里澄清我的想法…我现在明白我的问题写得有多错了…

该应用程序是处理图像处理的应用程序,并且是一个繁重的数据库。我计划做的是将整个系统拆分为一个前端,该前端将只为网页和后端应用程序提供服务,这将处理所有繁重的工作。这些应用程序(服务/模块...)中的每一个都将公开一个 API,前端将通过 AJAX 使用这些 API 来处理用户请求的操作。

对于服务器级别的组织,我指的是如何让服务器将页面请求重定向到nodejs,将数据请求重定向到适当的模块。

简而言之,我想我可以说,服务如何知道请求是针对API还是针对页面。

我想我要找的是RPC,但我不太明白这意味着什么,也不知道它是如何工作的。

共有1个答案

况鸿雪
2023-03-14

1: 这是开发大型可扩展系统的最佳方法吗?

开发一个大的、可伸缩的系统不一定只有一个答案。有许多架构以自己的方式工作,解决不同的问题。

因此,根据您的实际要求,答案是肯定的和否定的。如果你想要一些更有用的提示,你应该给我们更多关于你想要扩展的信息,而不仅仅是如何扩展。

2:如何重定向到组织服务器级别,以便将每个请求重定向到您的服务。因为每项服务都以最有效的方式工作?

我不确定你在这里到底是什么意思,但我相信你指的是如果/如何将工作分发到你的架构中的不同服务/服务器?

通常,如果您有 1 个或多个服务器/应用程序提供相同的服务,则可以使用负载平衡器来分配工作。如果您正在考虑如何将正确的工作发送到正确的服务(例如,将一些图像发送到图像处理服务,并将数据库查询发送到数据库),那么您将在处理reuqests的服务器中执行所有这些逻辑。传统上,这将由Web服务器完成,通过调用所需的服务来执行请求。

如果您需要更专业的帮助,请提供有关您的应用程序的更多信息。

 类似资料:
  • 我正在编写一个服务器端应用程序,它将管理来自以下位置的请求: 游戏客户端 网站(HTTP请求) API 到目前为止,我只对每种类型的请求使用一个(NodeJS)应用程序,问题是随着用户群的增长,这种方法将产生瓶颈。 我想要一些关于如何开发服务器端架构的建议,以便它具有可扩展性。 我知道的唯一解决方案是使用运行相同应用程序的多台服务器,它们将共享相同的内存(Redis服务器)。 在nodeJS中,是

  • 问题内容: 您认为可以将HTTP服务器嵌入Google Chrome扩展程序中吗? 我已经看到其他Google Chrome扩展程序执行本机代码,并且它们显然是通过使用NPAPI来执行的,但是我不知道那是什么。这真的让我感到震惊,因为我不是C ++专家或类似的专家。因此,我现在有点卡住,这就是为什么我要寻求帮助。 具体来说,我想为Chrome创建一个扩展程序,其功能类似于Opera Unite。对

  • 我有以下匕首组件结构: 客户端代码如下所示: 我决定将应用程序分成几个分级模块。我希望有分级模块和2个模块和,它们依赖于核心但彼此不了解。 我的问题是,使用从和导入来创建子组件。因此依赖于和。 我试图使用来解决这个问题,但这也需要在根组件中拥有一组所有子组件的dagger模块。 有没有什么方法可以去除根组件对子组件的依赖关系。 通过根组件的依赖关系,我的意思是它应该了解使用它的所有子组件。 根据d

  • 我正在探索将java web应用程序移动到Azure应用程序服务的可能性。应用程序on prem在启动时读取属性文件。 是否有可能将属性文件传递或放置到应用服务?如果没有,建议将此类遗留应用程序移动到Azure应用服务?

  • 问题内容: 我正在用Firebase构建Web应用程序,昨天他们发布了具有所有出色新功能的扩展程序。但是,“分析”部分现在仅适用于Android和IOS应用程序,但是我需要像以前一样检查Web应用程序的常规性能和数据使用情况。有没有办法查看这些统计信息,以防止我的应用程序超出限制时被关闭? 问题答案: Google Analytics for Firebase是一种新的分析产品,用于跟踪移动和We

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