【问题标题】:Multiple applications vs single application plus supervisor layer多个应用程序与单个应用程序加主管层
【发布时间】:2015-02-10 01:33:50
【问题描述】:

我正在开发一个 Erlang 项目,该项目将许多不同的 Erlang 应用程序捆绑到一个版本中。每个应用程序都有一个非常简单的结构 - 一个顶级应用程序文件,然后是一个管理单个 gen_server 的单个主管。它使用 rebar/reltool 来构建版本;作为一个发布新手,我对必须在 rebar.config 和 reltool.config 中进行的大量奇怪配置选项感到非常震惊。

然后我发现了 erlang.mk 和 relx,这似乎是构建版本的更理智/更简单的方式。然而,似乎 erlang.mk 只适用于单个顶级应用程序(即,一个与底层项目同名的应用程序)。这让我想知道,考虑到每个应用程序的简单性,我的原始结构真的是最优的吗?有一个单一的应用程序和一个顶级主管,然后在此之下的第二层主管,每个管理我的一个 gen_servers 可能不是更有意义吗?然后我可以使用 erlang.mk 并希望消除所有与钢筋相关的复杂性。

那么:对于一方面使用多个应用程序与使用单个应用程序和额外的中间主管层的优缺点有何建议?

【问题讨论】:

    标签: erlang erlang-otp


    【解决方案1】:

    Erlang 中的应用程序是一个可重用的组件,可以作为一个整体启动或停止。它可能是一个库,不需要启动或停止。我想问自己一个问题:

    “我可以把这个应用放到github上,让别人用吗?”

    1. 如果它足够通用并且答案是“是”,或者它只是与系统的其余部分松散耦合,则将其作为应用程序。
    2. 如果它只能在您的项目中使用,那就别费心了。

    我不太了解erlang.mk,但它应该能够处理更多顶级应用程序。如果没有,那么rebar3 has relx integration。在这里你有project page

    【讨论】:

      猜你喜欢
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      相关资源
      最近更新 更多