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

Erlang应用部署与热代码替换--理解 续

阅读更多

前几天学习了一下erlang的release的基本概念与基本用法。本周引入了 log4erl\mochiweb\ibrowse。事情没有想象的那么简单。遇到了以下几个问题:

1、发现打包的程序无法运行,仔细分析发现release中少了很多module,最后发现在log4erl.app\mochiweb.app中的 {modules,[ibrowse,...]}中没有写想的module都没有大包到release。这是为什么,还有什么办法解决这个问题?请明白者赐教。

2、log4erl与mochiweb中有一个相同的module,在利用target_syste:create/1创建时出现提示重复提示。我在log4erl.app直接去掉了一个。就可以打包了,据我分析个module一样的不会产生影响,有特殊的用法就难说了

3、以为OK了,但还是不行,因为是第一次对错误提示。没看明白。我就些了个简单的测试,测试通过。一旦整合就出错。在chenglitao的帮助,后来发现是ibrowse启动了两次。一次是自动启动,一次是我的server_sup启动了。因为都使用了{local,?MODULE.原以为添加一个start_link/1就可以了,发现还需要修改很多代码(yufeng建议我修改源码),因本人感情问题弄的我精神有点恍惚,思路不清,导致浪费了不少时间。有要解决此问题有三种方法(1)在我的server_sup中去掉ibrowse,我舍不得去掉。(2)修改源码,需要花更多时间理解源码的用意。A)我尝试在第二次启动是先stop/0,测试正常一旦发布使用就不可以,可能发布的过程中不允许出现stop信号。B)不用{local,?MODULE 重新起一个名字,我迫不及待的试用了一下,结果出错。这个能与init()引起的init 里有固定的put(ibrowse..).时间原因,小米朋友有个问题需要我帮,我放弃了此方法,采用了地三个方法。(3)使自动生成的script,不包含ibrowse启动. gz\script\boot是一个方法创建完的。我只好修改target_system:create方法,添加了个传入参数。这样就写了两个rel文件,启动一个不包含ibrowse用来生成不包含ibrowse的script.

问题搞定 在此谢过 chenglitao \yufeng 丢丢的帮助。

 

 

0
1
分享到:
评论
1 楼 wj2me 2010-12-22  
没有写到app文件里的module在release的时候就不包括进来了,release就取需要的,然后boot用embedded模式,就不再加载新的module了

相关推荐

    Erlang应用部署与热代码替换--理解2

    Erlang是一种面向并发的、轻量级的、函数式编程语言,...总之,理解和掌握Erlang的应用部署与热代码替换对于开发高可用、高并发的系统至关重要。通过实践和不断学习,我们可以利用这些特性构建出更健壮、更灵活的系统。

    Erlang 中的Module级别热部署

    在Erlang编程环境中,模块级别的热部署是一项关键特性,它允许开发者在不中断系统运行的情况下更新或替换已加载的模块。这对于实时系统和高可用性服务尤其重要,因为它们需要持续提供服务而不能因为代码更新而停机。...

    erlang 深度分析

    - **应用场景**: 代码的热替换场景。 #### 21. Erlang消息监听器调试 - **工具**: `erl_snooper`。 - **功能**: 监听Erlang进程之间的消息传递。 - **应用场景**: 调试复杂的分布式系统。 #### 22. Erlang网络程序...

    erlang深度分析

    6. **热更新**:Erlang系统支持运行时代码替换,无需停止服务即可更新或升级系统,这对于保持服务连续性至关重要。 7. **OTP(Open Telecom Platform)**:OTP是Erlang的标准库,提供了一套用于构建可靠、可扩展、...

    erlang-23.3.4.11-1.el7.x86-64.zip

    4. **热代码替换**:Erlang支持在不中断服务的情况下更新运行中的代码,这是其高可用性的一个关键特性。这使得开发者可以在生产环境中修复bug或优化性能而无需停机。 5. **模式匹配**:Erlang的函数调用允许模式...

    erlang深度分析.pdf

    热部署和代码替换 热部署(hot code replacement)是Erlang的一大特色,使得在不停机的情况下更新系统成为可能。这对于维护和升级大规模运行的应用系统尤其重要。 #### 12. IO和并发 Erlang的IO系统与其它语言相比...

    Erlang程序设计中文版

    Erlang以其强大的错误恢复能力、热代码替换以及对大规模并发的支持而闻名,是构建高可用性、容错性强的系统的一个优秀选择。 在本书中,读者将了解到Erlang的核心概念和语法特性,包括: 1. **函数式编程基础**:...

    erlang_otp_win64_22.1.zip

    4. **热更新**:Erlang OTP提供了代码替换(Code Replacement)功能,允许程序在运行时升级代码而无需停机,这在维护大型系统时非常关键。 5. **模式匹配**:Erlang的函数调用支持模式匹配,使得代码更加简洁和易于...

    erlang 学习笔记1

    同时,Erlang社区提供了许多工具,如Rebar3和ERTS(Erlang Run-Time System),它们对于构建、测试和部署Erlang应用至关重要。 【压缩包子文件的文件名称列表】"rw_file"可能表示这个压缩包包含了一些关于读写文件...

    erlang 24.2安装包

    此外,Erlang还支持热代码替换,使得在不中断服务的情况下更新应用程序成为可能。 Erlang的BEAM虚拟机是其运行时系统的核心,负责管理内存、调度进程和执行代码。理解BEAM的工作原理对于编写高效、健壮的Erlang代码...

    RabbitMQ+Erlang.rar

    Erlang采用函数式编程范式,提供了轻量级进程、热代码替换和故障隔离等特性,使得在RabbitMQ这样的系统中处理大量并发连接和快速消息交换变得可能。 RabbitMQ的安装通常包括两个主要步骤:首先,你需要安装Erlang...

    RabbitMQ+Erlang.zip

    Erlang以其轻量级进程、热代码替换以及内置的分布式计算能力而著称,这些特性使其成为构建高可用性和容错性的网络应用的理想选择。`otp_win64_24.0.exe`是Erlang/OTP(Open Telecom Platform)的Windows 64位版本,...

    Erlang程序设计.pdf

    - **分布式编程**:Erlang内置了对分布式系统的支持,可以很容易地将进程部署到不同的节点上,并通过网络进行通信。 通过以上介绍,我们不难看出,Erlang作为一种专为高并发、容错性强的应用场景设计的语言,其核心...

    erlang+rabbit.rar

    2. **热代码升级**:开发者可以在运行时替换和更新代码,无需重启系统,这对于维护大规模服务至关重要。 3. **故障恢复**:Erlang的错误处理机制鼓励进程间隔离,一个进程的崩溃不会影响其他进程,增强了系统的健壮...

    erl-templates:Erlang 模块模板

    在实际开发中,结合版本控制系统(如 Git)和持续集成/持续部署(CI/CD)流程,Erlang 模块模板可以进一步提升开发效率和代码可维护性。开发者可以将模板与项目代码一起版本化,确保在项目的不同阶段都能保持代码...

    erlangsoft.rar

    Erlang以其强大的并发处理能力、轻量级进程、热代码替换以及高效错误恢复机制而闻名。在现代IT行业中,Erlang被广泛应用于实时系统、大规模并发服务、云计算平台以及分布式数据库等领域。 "erlangsoft.rar"是一个...

    erlci:用Erlang编写的CI服务器。 NSWIDY(不确定我在做什么)

    2. **热代码替换**:Erlang 支持运行时代码更新,无需停止整个系统,这对于CI服务器来说意味着可以在不影响服务的情况下进行升级和调试。 3. **分布式**:Erlang系统可以轻松地跨多台机器分布式部署,这对于构建...

    elixir中文入门文档

    - **Mix简介**:Mix是Elixir的官方构建工具,用于编译、打包、部署Elixir应用程序。 - **Mix常用命令**:如`mix new`用于创建新项目,`mix compile`用于编译项目等。 #### 十五、元编程 - **元编程概念**:元编程...

    卡祖·坎普

    3. **热代码替换**:Erlang支持在运行时更新代码,无需停机即可升级系统,这对于维护大型服务至关重要。 4. **简单错误处理**:Erlang使用模式匹配和异常处理机制,使得错误处理更加直观和简洁。 5. **OTP(Open ...

Global site tag (gtag.js) - Google Analytics