Erlang是如何容错的,或者在这方面有什么帮助?

Erlang是如何容错的,或者在这方面有什么帮助?,erlang,fault-tolerance,Erlang,Fault Tolerance,Erlang是如何容错的,或者在这方面有什么帮助?Erlang使创建许多小型进程以及监视这些进程变得非常容易。当其中一个进程崩溃时,可以重新启动系统的该部分,而无需关闭整个进程 您可能在现代版本的Windows中看到过类似的情况:如果图形驱动程序崩溃,系统可以重新启动图形驱动程序;它不会杀死整个系统 为了更容易编写容错应用程序,Erlang提供了监控进程的概念。这些流程监控许多子流程,并知道如何在子流程死亡时做出响应。您可以创建一个完整的监控树,以便可以很好地控制应用程序不同部分的行为。你可以读

Erlang是如何容错的,或者在这方面有什么帮助?

Erlang使创建许多小型进程以及监视这些进程变得非常容易。当其中一个进程崩溃时,可以重新启动系统的该部分,而无需关闭整个进程

您可能在现代版本的Windows中看到过类似的情况:如果图形驱动程序崩溃,系统可以重新启动图形驱动程序;它不会杀死整个系统


为了更容易编写容错应用程序,Erlang提供了监控进程的概念。这些流程监控许多子流程,并知道如何在子流程死亡时做出响应。您可以创建一个完整的监控树,以便可以很好地控制应用程序不同部分的行为。你可以读更多。

注意:我是一个二郎书呆子


@丹尼尔的回答基本上是正确的。我强烈建议您花点时间阅读Erlang创建者Joe Armstrong的著作(在存在软件错误的情况下创建可靠的分布式系统)。本文很好地解释了开发健壮的分布式系统的必要性和解决方案。我相信这篇论文会令人满意地回答你的问题

我想我在中介绍了部分答案。

Erlang是容错的,考虑到以下几点:

  • Erlang知道错误会发生,事情也会发生,因此,与其防范错误,Erlang让您拥有强大的工具来最小化错误的影响,并在错误发生时进行恢复

  • Erlang鼓励您对成功案例进行编程,如果出现任何问题,则在不尝试恢复部分损坏的数据的情况下崩溃。这背后的想法是,部分不正确的数据可能会在系统中进一步传播,并可能写入数据库,从而给系统带来风险。最好尽早摆脱它,只保留完全正确的数据

  • Erlang中的进程隔离有助于在出现部分错误数据并导致进程崩溃时将其影响降至最低。系统清除崩溃的代码及其内存,但作为一个整体继续工作

  • 监控和重启策略通过重启系统的重要部分并使其重新投入使用,有助于在部分系统崩溃时保持系统的完整功能。如果出现严重错误,导致重新启动次数过多,系统将被视为无法修复,因此将关闭


我希望人们能解释反对票,对于不熟悉这一主题的人来说,它至少可以提供一些有趣的信息。主页上说它是容错的,很好奇它是如何提供的?呵呵,我也是一个二郎书呆子,但是我说了我所说的,因为这是一个惯用的Erlang系统与几乎所有其他环境中的系统根本不同的方式。或者更确切地说,其他系统似乎没有提供关于如何处理这些问题的建议,而Erlang提供了建议。您在另一个线程中的答案相当完整。每个感兴趣的人都应该看看。