将Web应用程序拆分为服务/模块以实现可伸缩性

时间:2016-03-11 12:14:51

标签: node.js scalability

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

1:使用可处理大量同时请求的语言开发前端。将前端理解为模块/服务 负责将页面传递给客户。

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

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

4:使用技术(编程语言)将后端分成多个模块/服务,以便每个人使用。

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

我的问题是:

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

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

好吧,试着澄清我的想法...... 我现在看到我写错了我的错误......

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

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

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

我想我正在寻找的是RPC,但我并不了解这意味着什么,也不知道它是如何工作的。

1 个答案:

答案 0 :(得分:0)

  

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

开发一个庞大且可扩展的系统并不是唯一的答案。有许多架构以自己的方式工作,解决不同的问题。

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

  

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

我不确定你的意思,但我相信你是指/如何将工作分配到你的架构中的不同服务/服务器?

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

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