【问题标题】:Erlang Supervisor Strategy For Restarting Connections to Downed HostsErlang Supervisor 重启与宕机主机连接的策略
【发布时间】:2011-02-27 15:04:59
【问题描述】:

我使用 erlang 作为服务之间的桥梁,我想知道人们对处理断开的连接有什么建议?

我从本地文件中获取输入并将它们传送到 AMQP,可以想象 AMQP 代理可能会出现故障。对于这种情况,我想继续重试连接到 AMQP 服务器,但我不想将 CPU 与这些连接尝试挂钩。我的倾向是让 AMQP 代码重新启动时进入睡眠状态。那'hack'不会本质上绕过快速失败并让erlang处理它的目的吗?更一般地说,是否应该使用 erlang 主管行为来处理断开的连接?

【问题讨论】:

    标签: erlang behavior erlang-supervisor gen-server


    【解决方案1】:

    我认为编写自己的语义来自己处理与外部服务器的连接是合理的。主管最适合处理您自己的进程树中的崩溃/锁定/其他不健康的进程,而不是重新连接到外部服务。

    您的进程是在与 AMQP 代理相同的进程树中通过管道传输本地文件还是一个单独的服务?

    【讨论】:

    • 我同意。也许主管不应该参与业务逻辑,他们只是在那里处理死流程并保持一致(one_for_all、one_for_one 等)。是的,文件管道和 AMQP 客户端进程是独立的进程。 erlang-amqp-client 为每个连接创建一个进程(或者是那个通道?),现在我只需要处理它的死亡。很多东西要学!
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2016-06-04
    • 1970-01-01
    • 2017-11-24
    • 2022-11-15
    • 2012-11-06
    相关资源
    最近更新 更多