【问题标题】:Use Erlang + some other language on backend在后端使用 Erlang + 一些其他语言
【发布时间】:2016-12-02 15:34:26
【问题描述】:

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

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

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

我应该使用中间人技术还是将Erlang + Apache/nginx 并使用Erlang 实现整个系统是一个好的解决方案?

【问题讨论】:

    标签: node.js nginx erlang


    【解决方案1】:

    Erlang 的主要优势正是这种处理客户端连接并将请求路由到工作人员的方式。轻量级和隔离的进程使其可以很好地扩展到大量连接,同时使其非常容错。 Erlang 通常不是处理大量数字的正确语言,它应该用于请求处理和路由。

    因此,与其将 node.js 之类的东西作为连接处理程序和路由器,不如使用例如YawsCowboy(目前更流行的选择)作为 websocket 服务器并在 Erlang 中处理所有内容。

    在生产系统中,您可以使用 nginx/haproxy 作为 Erlang 服务器前的负载平衡器/代理,但无论如何都不是必需的。

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

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多