在后端使用Erlang +其他语言

时间:2016-07-28 09:57:37

标签: node.js nginx erlang

我想学习更多Erlang,作为游乐场,我想将它用于核心后端逻辑。

我想知道,如果要与最终用户连接,我应该选择另一个堆栈,比如NodeJS并以某种方式连接到Erlang?

说,我想用NodeJS与用户建立websocket连接,因为它非常适合WebSockets,然后在NodeJS和Erlang之间创建一个通信,将所有数据处理传递给Erlang,同时保持NodeJS为后端和最终用户之间的中间人。

我应该使用中间人技术还是使用Erlang来放置Erlang + Apache / nginx并实现整个系统的好方法?

1 个答案:

答案 0 :(得分:1)

Erlang的主要优势在于客户端连接和工作路由请求的处理。轻量级和隔离的进程使其可以很好地扩展到大量连接,同时使其具有很强的容错能力。 Erlang通常不是重数字运算的正确语言,它应该用于请求处理和路由。

因此,不要像node.js那样放置连接处理程序和路由器,而只需使用例如YawsCowboy(当前比较流行的选择)作为websocket服务器并处理Erlang中的所有内容。

在生产系统中,您可以在Erlang服务器前使用nginx / haproxy作为负载均衡器/代理,但不一定非必要。

关于Erlang服务器可伸缩性的一篇有趣的文章是A Million-user Comet Application with Mochiweb,它关于彗星式HTTP请求,而不是Web套接字,但有很多好的信息。