node.js和Browser之间的中间件?

时间:2015-08-27 14:15:52

标签: javascript node.js rabbitmq

在node.js应用和浏览器之间实现中间件服务/应用是否是个好主意?

例如:

Browser <----- [Middleware]  <---- [Node JS] 

Node.js将json元数据发送到Middleware app,然后将其传递给Browser(套接字或HTTP)。如何做到这一点,我应该使用RabbitMQ之类的东西将数据从[Node JS]传递到[Middleware]应用程序吗?

[Middleware]也可以用node.js

编写

我认为这样做的原因是因为我不希望浏览器或公众了解[Node JS]应用。

[Node JS]用于通过TCP套接字实时在PBX服务器之间进行通信。如果我没有[Middleware]那么最终用户可以直接DDOS攻击[Node JS],这将影响[Node JS]和PBX服务器之间的实时通信。

1 个答案:

答案 0 :(得分:1)

当您想要做出这些架构决策时,最好包含风险管理。从技术上讲,这个中间件可以实现,但这里的关键问题是“你应该实现这个”。

首先问问自己,有人在您的服务器上进行DDOS攻击的概率是多少?如果机会很小,那么你不需要这个中间件。

如果概率很高,那么如果有人真的对您的服务器进行DDOS攻击以及您需要多长时间为自己辩护并使您的服务再次可用,那么您将损失多少钱?

一些通用的计算方法是计算您在一分钟/小时/天内获得的收入,然后乘以您的服务离线时间。

您的客户期望是什么,以及有多少客户会使用您的服务?

是否有其他方法可以实施以软化DDOS攻击。

最后,您的中间件如何保护您免受DDOS攻击?您不想花费数小时实施中间件而不知道它真的会保护您。通过制作中间件,您正在“屏蔽”您的Node.js服务器,但仍然有人可以攻击您的中间件并使您的服务脱机,然后是什么?