Node.js 将web应用程序拆分为服务/模块以提高可扩展性

Node.js 将web应用程序拆分为服务/模块以提高可扩展性,node.js,scalability,Node.js,Scalability,我对如何开发大型web应用程序有些疑问。 经过一些研究,我想到了一些想法: 1:用一种能够同时处理大量请求的语言开发前端。将前端理解为模块/服务 负责将页面交付给客户 2:使用Nodejs作为前端语言(这里不选择golang) 3:对后端模块的请求将由AJAX发出,服务器必须重定向到适当的模块 4:后端使用技术(编程语言)分为多个模块/服务,每个模块/服务都可以更好地使用 5:每个模块都有自己的服务器或一组服务器 我的问题是: 1:这是开发大型可扩展系统的最佳方式 2:为了将每个请求重定向到您的

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

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

2:使用Nodejs作为前端语言(这里不选择golang)

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

4:后端使用技术(编程语言)分为多个模块/服务,每个模块/服务都可以更好地使用

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

我的问题是:

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

2:为了将每个请求重定向到您的服务,它将如何转移到组织服务器级别。因为每一项服务都是有效的 最有效的方法是什么

好吧,我想澄清一下我的想法。。。 我现在明白我写的问题有多错了

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

对于服务器级别的组织,我的意思是,如何使服务器将页面请求重定向到nodej,将数据请求重定向到适当的模块

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

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

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

开发一个大型的、可扩展的系统并不一定只有一个答案。有许多体系结构以自己的方式工作,解决不同的问题

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

2:为了将每个请求重定向到您的服务,它将如何转移到组织服务器级别。因为每项服务的工作效率最高吗

我不确定你在这里的确切意思,但我相信你指的是,如果/如何将工作分配给架构中的不同服务/服务器

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


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

我已更新了我的问题。对不起,如果我只是把事情弄得很糟糕。我想构建一个web应用程序,我想在开发过程中将前端和后端分开。我可以通过为静态HTML页面提供服务,并使用对REST服务的AJAX请求更新HTML中的动态内容来实现这一点。在这种方法中,浏览器有效地发出两个以上的HTTP请求来呈现一个页面。这样做对吗?或者有更好的方法吗?如果我理解正确,您不应该重定向传入的请求,而应该从前端节点项目向后端服务进行必要的API调用。假设我从节点脚本进行API调用。我会用一个url来调用它,或者像调用安装在服务器上的程序一样调用它?我的主机将后端与前端放在同一台服务器上,并使用AJAX调用它。那需要一个url,对吗?服务器如何基于url重定向到正确的服务?