gpt4 book ai didi

erlang - Erlang 的容错能力对 Web 项目的真正好处是什么?

转载 作者:行者123 更新时间:2023-12-02 08:59:13 26 4
gpt4 key购买 nike

假设我们有一个 Web 项目,其中我们希望有约 10000 个 Web 客户端同时连接到服务器。我们还假设一个客户端 session 持续大约 25 分钟。

如果我们将 LAMP 堆栈或任何其他流行的 Web 堆栈/框架(Linux 上的 Ruby on Rails 和 Apache 等)与在 Erlang/OTP 中构建的 Web 项目进行比较 - Erlang/OTP 有什么特点其他框架没有的容错能力?

客户端发生什么事件会导致整个 LAMP 堆栈崩溃,而 Erlang/OTP 会坚守阵地?

最佳答案

请注意,典型的 LAMP 堆栈确实采用了一定的容错能力。特别是,如果 LAMP 堆栈中的请求失败,则只有该请求失败,而其余代码将继续运行。这种保护允许您在单个请求中出现错误,而不会影响其他请求。

Erlang 提供了这种“能够以更细粒度的方式应对较小的不可预见的错误”的想法。您的应用程序中可能有其他子系统,并且可以将相同类型的错误容忍度扩展到这些子系统。您不会“免费”获得它,但工具可以构建一个强大的系统。想象一下 LAMP 堆栈中的客户端错误。这通常会导致该客户端断开连接。在 Erlang 中可能不是这样,客户端可以继续运行。

对于拥有 10000 个客户端的系统,Erlang 提供的优势是每个客户端可以有一个进程。或者每个客户端可能有 10 个进程。这在许多语言中都很难实现,因为进程/线程相当繁重且昂贵。请注意,客户端之间的进程间通信很容易,即使某些客户端位于另一台计算机上(想象一下有一天扩展到分布式集群)。

如果您以某种方式编写代码,则可以确保如果客户端由于某种原因崩溃,则其状态会被其他进程正确清理。这也可以避免大量令人讨厌的状态泄漏。

关于erlang - Erlang 的容错能力对 Web 项目的真正好处是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com