【问题标题】:Split a web application into services/modules to scalability将 Web 应用程序拆分为服务/模块以实现可扩展性
【发布时间】:2016-03-11 12:14:50
【问题描述】:

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

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

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

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

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

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

我的问题是:

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

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

好吧,在这里试图澄清我的想法...... 我现在明白我写的问题有多错误了......

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

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

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

我想我正在寻找的是 RPC,但我并不真正理解它的含义,也不明白它是如何工作的。

【问题讨论】:

  • 如果我理解正确,您不应该重定向传入的请求,而是从您的前端节点项目到后端服务进行必要的 API 调用。
  • 可以说我从我的节点脚本进行了 api 调用。我会使用 url 进行调用,还是像调用服务器中安装的程序一样调用它?我将后端托管在与前端相同的服务器中,并使用 AJAX 调用它。那将涉及一个网址,对吗?服务器如何根据 url 重定向到正确的服务?

标签: node.js scalability


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

  • 我已经更新了我的问题。抱歉,如果我让事情变得更糟,无法理解。
  • 我想构建一个Web应用程序,我想在开发过程中将前端与后端分离。我可以通过提供静态 HTML 页面并使用对 REST 服务的 AJAX 请求更新 HTML 中的动态内容来做到这一点。在这种方法中,浏览器有效地发出两个以上的 HTTP 请求来呈现页面。这是正确的方法吗?还是有更好的方法?
猜你喜欢
  • 1970-01-01
  • 2013-06-26
  • 2023-03-22
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 2011-09-11
  • 2011-07-09
  • 2019-12-19
相关资源
最近更新 更多