在多层应用程序中的不同应用程序服务器之间进行通信

时间:2016-03-11 19:18:19

标签: web-applications architecture n-tier-architecture multi-tier

我正在编写一个节点应用程序,它有两个主要任务。让我们说任务A(从缓存层读取并响应请求)和B(操作服务器响应未被任务A处理的请求)。在将来,我知道任务A将是更常用的任务,而任务B将仅限于新请求(几乎占总负载的10%)。

鉴于这种情况(以及任务A(网络密集型)和B(CPU密集型)的不同性质),我想到在不同的服务器集上部署任务A和任务B,以便两者可以扩展或无论如何都是如此。

这种方法对于描述的场景是否正确?如果是,那么在任务A和B的不同层之间进行通信的一般做法是什么?假设所有请求都需要立即完成(排除使用队列的延迟执行)。

1 个答案:

答案 0 :(得分:0)

这个问题的答案取决于很多因素,包括技术堆栈,负载配置文件(您要扩展到多高?)以及网络基础架构等。

我将假设最简单的情况,并且您有一些正在侦听URL的任务。 / taskA和/ taskB。您通常通过某种调度层解决此问题,该调度层将向不同的后端服务器发送不同的URL请求。

例如,将Apache或NGinix作为反向代理放在应用程序服务器前面,并将请求转发到正确的后端服务器进行维护。