node.js - 在后端使用 Erlang + 一些其他语言

标签 node.js nginx erlang

我想了解更多 Erlang,作为一个 Playground ,我想将它用于核心后端逻辑。

我想知道,为了与最终用户连接,我是否应该选择另一个堆栈,例如 NodeJS 并以某种方式将其连接到 Erlang?

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

我是否应该使用中间人技术,或者放置 Erlang + Apache/nginx 并使用 Erlang 实现整个系统是一个很好的解决方案吗?

最佳答案

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

因此,不要将像 Node.js 这样的东西作为连接处理程序和路由器,只需使用例如YawsCowboy (目前更流行的选择)作为 websocket 服务器并处理 Erlang 中的所有内容。

在生产系统中,您可以使用 nginx/haproxy 作为 Erlang 服务器前面的负载均衡器/代理,但没有任何必要。

一篇关于 Erlang 服务器可扩展性的有趣文章是 A Million-user Comet Application with Mochiweb ,它是关于 Comet 风格的 HTTP 请求,而不是 Web 套接字,但有很多有用的信息。

关于node.js - 在后端使用 Erlang + 一些其他语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633031/

相关文章:

Erlang中的PDF处理库

node.js - 如何检查MongoDB native nodejs驱动程序中是否存在集合?

reactjs - 为什么迁移到 https 会中断客户端和服务器之间的通信?

mysql - 存储特定数字范围的所有可能组合

docker - Dockerized Nginx无法加载证书

apache - certbot-auto : Client lacks sufficient authorization

erlang - 在 Erlang 中发送消息

erlang - 消息的时间顺序

Node.js + Arangodb 建立连接并获取查询

node.js - 在express中使用路由器