erlang - 在 Erlang(和 Riak)中开发应用程序时的良好做法?

标签 erlang erlang-otp riak

我们逐渐熟悉 Erlang/OTP 和 Riak(Core、KV、Pipe 等)尝试依次构建开源分布式应用程序。我们的项目将有一堆依赖项:像 erlang_js、protobuffs 等工具,还有我们需要运行的服务,比如 Riak KV。

在 Python/Ruby/Node.js 中,如果模块放置在相对于项目的标准子目录中,您可以引用它们,然后将它们打包到发布中。您可以在项目目录中启动一个 shell,使用您的模块,进行测试等等,如果遵循良好的实践,所有这些都很容易。

在 Erlang/OTP 中组织开发环境的最佳实践是什么,所有依赖项都可以访问(并且可以轻松更新到最新版本)、对运行节点的 shell 访问、测试、发布等等?

最佳答案

查看 rebar3 :用于打包、模板化和管理 Erlang/OTP 应用程序的发布。您将在那里找到有关如何使用它的完整教程。

查看 this tutorial on OTP首先,在你可以switch to this one之前它向您展示了版本以及它们在 Erlang 中的处理方式。使用这个entire book as reference在您开发项目时,因为作者仍​​在逐步添加您可能需要的更高级的东西。

您可能还想继续阅读 Erlang Applications然后请查看下面的这些快速链接:

Erlang Packaging, Process One OTP Packaging Video by Chicago Boss Guys Erlang Dependency Management Richard Jones Advice and examples on Packaging Erlang Projects with Dependencies Maven Tool and how it is used in packaging Erlang Projects

最重要的是,非常重视线程钢。这对于管理具有依赖关系的 Erlang 应用程序非常重要。您可以继续在 Stack Overflow 上发布您的问题,以便在您取得进展时获得任何帮助。

在我忘记之前,请查看 Riak Community 中的很多内容.

此外,查看 creating target systems 上的系统文档也很重要。以及如何使用Reltool处理发布。 erlang 的好处是它有几个如何做某事的选项,只要它易于以这种方式维护您的应用程序。对于目标系统,您将学习如何嵌入 Erlang VM,如何在 Solaris、VxWorks 上运行 Erlang 应用程序,以及使用 erlsrv 在 Windows NT 上将 Erlang 应用程序创建为服务。 .

通常,我们确保当操作系统启动服务器时,我们的应用程序会从它启动。迄今为止,在嵌入 Erlang/OTP VM 方面,Solaris 比任何其他操作系统都有更多的自定义。您始终可以使用 Escript 与(一个)嵌入式 Erlang 虚拟机进行通信。其中,escript 创建了一个允许连接到嵌入式 VM 的 erlang 节点(因此它们必须共享相同的 cookie),并且嵌入式 VM 必须允许临时创建的节点通过执行 net_kernel:allow(List_of_nodes) 进行连接

确保调用此方法以使您的嵌入式 VM 仅允许来自已知严格指定数量的节点的连接。

关于erlang - 在 Erlang(和 Riak)中开发应用程序时的良好做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8192344/

相关文章:

erlang - emq mqtt 集群 : Client Session management

nosql - Riak 的 G 计数器 : Don't the underlying vclocks provide the same data?

php - Riak:快速获取多个项目

c - 从 C 向 GenServer 发送消息

function - Erlang - 未定义的函数

Erlang 演示应用程序?

process - Erlang OTP-observer 不显示我的应用程序

erlang - 帮助我了解 mnesia (NoSQL) 建模

Erlang 工作流程

cassandra - datomic 自托管、分布式存储选项的比较?