`
cryolite
  • 浏览: 581901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Erlang/OTP的application参数配置

阅读更多


Erlang/OTP中将完成特定功能的一组模块组织起来,称之为application 。(这不是个好名字,因为它与我们约定俗成的application有着不同的含义,例如在JEE这样的开发中,整个应用系统被称为一个application;在iOS中一个独立游戏、一个小工具都被称为一个application。Erlang中的application其实是一种大的功能模块,例如lager这个application为其他模块提供日志功能)

erlang/OTP的application模块(指erlang module)是一种最基本的behavior,是Erlang代码和功能组织的形式(见Erlang OTP设计原则)

application运行时可能需要提供某些参数,以调整运行时的行为。例如数据库的连接参数(主机名,端口号等),这些参数可以存放在静态配置文件中,application运行时可以通过调用application:get_env(ParamKey)得到当前application配置的参数值。get_env(Foo, Par)得到某个指定application,Foo的配置参数值.

以application lager的配置为例,lager有多个日志级别(debug/info/warning/error),配置不同级别的日志会影响日志的输出,此外日志文件的名字和存放位置也是可以配置的,这些都可以作为lager的运行参数在lager启动时配置。

实际上,application的参数可以在很多地方配置(例如: 在静态配置文件中配置,一般是application的.app文件,甚至在erlang启动时作为启动命令的一部分为某个application配置运行参数),因此搞清这些不同地方进行配置关系(比如配置的缺省位置和如何覆盖override参数)是进行erlang OTP开发的基本功。

每个application的运行参数可视为一种环境参数,这些参数可以在三个层次进行配置,如图所示


上层的配置可以覆盖(override)下层的配置:

Application Resource File, (.app文件)图中最底层(橙色),每个application都要自己的资源文件,这些文件都有统一的格式,其中有个env属性,用于为本application配置环境参数,详细信息。因为最底层配置的参数总能被上层的参数覆盖,而且资源文件中的参数只限于本application,所以application的缺省参数在此配置最好。

System Configuration File, (.config文件), 图中第二层(绿色),当多个application连同erlang运行时, lib库打包发布时,整个发布包(粉红色虚线框)会有一个sys.config,在sys.config文件中配置可以对特定的application的环境参数进行定制:同名的参数将被覆盖。作为整个发布的配置文件, sys.config可以同时对发布包中的多个application进行参数配置。而且在我们的发布里不一定都叫sys.config这个名字,可以在erl命令的选项-config中指定其它名字

最高层(蓝色),直接在erl命令中直接为某个application配置参数,详细信息,例如如果打算将lager的日志级别设为debug(缺省是info),可以这样:
erl -lager handlers '[{lager_console_backend, debug}]'

如例所示,参数的值可以是比较复杂的erlang term,记得要用引号引起来。

这一级别显然比较适合在application开发、调试时临时调整application参数用。



这些配置参数的值实际上在application启动之前就已生效。比如上述例子中在erl启动时配置了lager的运行参数,但此时lager这个application还没有启动,当用application:start/1 启动lager后,相关的配置参数在此时应用到lager上。


另外,还有一种特殊的application叫做Library Applications(比如一个复数函数库),这种application有可能只提供一些函数,不会直接有erlang进程生成,所以一般不需要application:start就能使用。Library Applications中的参数也可以在app.src文件中配置,但是不用application:start这些文件中参数是不会自动加载的。


还要注意的一点是:当对系统打包发布(release)时,只能通过修改System Configuration File(默认名是sys.config的文件)覆盖环境配置参数,发布后再修改发布包中application的app文件是没有效果的。
  • 大小: 164 KB
分享到:
评论

相关推荐

    Erlang/OTP Application完整例子

    Erlang/OTP Application完整例子,含代码和二进制,对于学习Erlang/OTP Application很有帮助。 配套文章http://blog.csdn.net/mycwq/article/details/12610677

    Erlang/OTP 26.2.1

    Erlang/OTP 26.2.1,Erlang,OTP,26.2.1

    Erlang / OTP 21.0 版本下载

    官网下载实在是困难,我把当前Erlang / OTP 21.0 版本提交到这里提供给大家和自己下载 原先积分0的现在都这么高了,为了方便大家,放出云盘地址:https://pan.百度.com/s/1hb8vPiMslXxNuJC8PvnKgg提取码wmx8

    Erlang/OTP reference

    #### 关于Erlang/OTP Erlang/OTP(Open Telecom Platform)是Ericsson AB自1997年起开发的一套强大的分布式软实时运行环境,主要设计用于构建高可用性、高并发、分布式应用。其核心语言Erlang是一种函数式编程语言...

    Designing for Scalability with Erlang/OTP

    This book is what you get if you put together an Erlang enthusiast who worked on the R1 release of OTP in 1996 and a Distributed Systems specialist who discovered Erlang/OTP

    Erlang-otp_win64_23.0.zip

    Erlang OTP是Erlang编程语言的核心组成部分,它提供了分布式计算、并发处理、热代码升级和容错恢复等一系列强大...用户需要正确安装并配置Erlang OTP,然后才能继续安装和使用RabbitMQ,实现高效的消息传递和队列管理。

    erlang-otp-win64位 25.3版本

    安装完成后,Erlang OTP的环境将被配置好,包括添加系统路径、设置必要的环境变量等。 为了确保Erlang OTP能够正常工作,安装后可以验证其安装是否成功,例如通过命令行输入`erl`启动Erlang shell,如果能够进入...

    erlang_otp_win64_25.0

    Erlang OTP (Open Telephony Platform) 是一种高级并发编程语言和框架,主要由瑞典电信设备制造商Ericsson开发,用于构建高度可靠、可扩展和实时的分布式系统。Erlang OTP 25.0是该平台的一个版本,特别针对Windows ...

    erlang otp25 win安装包

    erlang otp25 win安装包

    Erlang/OTP R11B 文档

    Erlang/OTP R11B 文档 中文文档

    otp, erlang/otp.zip

    otp, erlang/otp erlang/otp是一种编程语言和运行时系统,用于构建大规模可以伸缩软实时系统,具有高可用性。费 OTP是一套Erlang库,由Erlang运行时系统,大量的组件和一套Erlang程序设计原则组成。 了解更多关于...

    erlang-otp_win64_23.0.zip

    此版本为window64位下的,erlang23版本,erlang-otp_win64_23.0,官网原包,官网太难找了,好不容易找到,和大家分享下,需要的可以下载,也作为自己的一个记录吧,自己亲测很好用,erlang环境需要与对应的rabbitmq...

    官网windwos版Erlang(otp_win64_24.3.4.exe)

    "otp_win64_24.3.4.exe"是Erlang OTP的Windows 64位版本,版本号为24.3.4。这个安装程序将为你的Windows系统提供运行Erlang应用程序所需的全部组件,包括虚拟机、编译器、运行时系统以及用于并发、分布式计算和错误...

    windows 32位和64位 Erlang 21.0.1下载

    This guide covers Erlang/OTP requirements, recommendations, caveats and commonly used installation sources. Unsupported Versions Erlang/OTP versions older than 19.3 are not supported by currently ...

    Erlang最新版本 otp-win64-25.0.3

    Erlang最新版本 25.0.3 windows 安装文件 解压直接安装 5个币-----------------------------------------------------------------------------------------------------------------------------------------------...

    Erlang otp_win64_21.2.exe

    Erlang OTP(Open Telephony Platform)是一种开源的编程语言和框架,专为构建高度并发、分布式和容错系统而设计。"Erlang otp_win64_21.2.exe" 是Erlang OTP在Windows 64位平台上的一个特定版本,编号为21.2。这个...

    erlang 25.1 放入/root/.kerl/archives,直接./kerl build 25.1

    在Erlang的版本管理中,`kerl`是一个方便的工具,用于构建、安装和管理Erlang/OTP(Open Telecom Platform)的源代码版本。标签"erlang"表明讨论的核心是Erlang语言本身。文件名"otp_src_25.1"代表了OTP的源代码包,...

    Erlang/OTP 中文手册(R11B)

    **Erlang/OTP 中文手册(R11B)** Erlang是一种并发性极强的编程语言,尤其适用于构建分布式、容错且高度可扩展的系统。OTP(Open Telecom Platform)是Erlang的核心组件,提供了一套标准库、开发框架和设计模式,...

Global site tag (gtag.js) - Google Analytics