我看了litaocheng的erlang otp 应用发布指南文章 试着做了一下,也顺利升级.但我自己写的程序。
第一个例子在升级时执行了code_change/3 但版本号,不是我定义的1.0 而是 一串很长的数字。
第二个例子压根没有执行code_change/3方法。 {update, your_gen_server, {advanced, []}}已定义
一串数字 litaocheng说是随机生成的版本号
我带这疑问 仔细观察发现 我的gen_server里面没有写 -vsn("1.0")造成出现code_change 不执行和版本号是一串数字。
同样的都是没有写-vsn,却在两个例子里面表现出不同的结果,我怀疑与gen_server的个数有关,不执行code_change/3的例子里面有两个gen_server都没有写-vsn(这是为什么呢?是否两个随机生成的版本号不一致造成的呢 我还不知道)
疑问:在.rel文件里面已经定义了版本号,为什么还要到gen_server里面定义。
总结一下近期的学习:
需要注意的地方:
1>erlang Erlang R13B03 (erts-5.7.5) supervisor 存在 bug 导致,出现 cannot find top supervisor for application 提示。
2>gen_server中要写-vsn("版本号")(fengyu在邮件列表中说默认vsn是beam的md5校验码),如果自动生成不好控制,导致code_change/3不能正常执行或不执行。
3>所有的版本号最好都一致,不然很麻烦。
深呼一口气,放松放松一下,继续。
分享到:
相关推荐
Erlang是一种面向并发的、轻量级的、函数式编程语言,...总之,理解和掌握Erlang的应用部署与热代码替换对于开发高可用、高并发的系统至关重要。通过实践和不断学习,我们可以利用这些特性构建出更健壮、更灵活的系统。
在Erlang编程环境中,模块级别的热部署是一项关键特性,它允许开发者在不中断系统运行的情况下更新或替换已加载的模块。这对于实时系统和高可用性服务尤其重要,因为它们需要持续提供服务而不能因为代码更新而停机。...
Erlang R12B-3版本发布 - **新特性**: - **性能提升**: 内存分配效率提高,特别是在SMP环境下。 - **bug修复**: 解决了一些已知的问题。 - **应用场景**: 更新现有系统到最新版本。 #### 27. Erlang网络应用 - *...
6. **热更新**:Erlang系统支持运行时代码替换,无需停止服务即可更新或升级系统,这对于保持服务连续性至关重要。 7. **OTP(Open Telecom Platform)**:OTP是Erlang的标准库,提供了一套用于构建可靠、可扩展、...
4. **热代码替换**:Erlang支持在不中断服务的情况下更新运行中的代码,这是其高可用性的一个关键特性。这使得开发者可以在生产环境中修复bug或优化性能而无需停机。 5. **模式匹配**:Erlang的函数调用允许模式...
热部署和代码替换 热部署(hot code replacement)是Erlang的一大特色,使得在不停机的情况下更新系统成为可能。这对于维护和升级大规模运行的应用系统尤其重要。 #### 12. IO和并发 Erlang的IO系统与其它语言相比...
Erlang以其强大的错误恢复能力、热代码替换以及对大规模并发的支持而闻名,是构建高可用性、容错性强的系统的一个优秀选择。 在本书中,读者将了解到Erlang的核心概念和语法特性,包括: 1. **函数式编程基础**:...
4. **热更新**:Erlang OTP提供了代码替换(Code Replacement)功能,允许程序在运行时升级代码而无需停机,这在维护大型系统时非常关键。 5. **模式匹配**:Erlang的函数调用支持模式匹配,使得代码更加简洁和易于...
同时,Erlang社区提供了许多工具,如Rebar3和ERTS(Erlang Run-Time System),它们对于构建、测试和部署Erlang应用至关重要。 【压缩包子文件的文件名称列表】"rw_file"可能表示这个压缩包包含了一些关于读写文件...
Erlang采用函数式编程范式,提供了轻量级进程、热代码替换和故障隔离等特性,使得在RabbitMQ这样的系统中处理大量并发连接和快速消息交换变得可能。 RabbitMQ的安装通常包括两个主要步骤:首先,你需要安装Erlang...
此外,Erlang还支持热代码替换,使得在不中断服务的情况下更新应用程序成为可能。 Erlang的BEAM虚拟机是其运行时系统的核心,负责管理内存、调度进程和执行代码。理解BEAM的工作原理对于编写高效、健壮的Erlang代码...
Erlang以其轻量级进程、热代码替换以及内置的分布式计算能力而著称,这些特性使其成为构建高可用性和容错性的网络应用的理想选择。`otp_win64_24.0.exe`是Erlang/OTP(Open Telecom Platform)的Windows 64位版本,...
3. **并发性**:由于轻量级进程的存在,Erlang能够非常高效地处理大量的并发任务,这对于构建高并发的网络应用非常重要。 4. **动态类型**:Erlang是一种动态类型的编程语言,变量可以在运行时被赋值为任意类型的...
2. **热代码升级**:开发者可以在运行时替换和更新代码,无需重启系统,这对于维护大规模服务至关重要。 3. **故障恢复**:Erlang的错误处理机制鼓励进程间隔离,一个进程的崩溃不会影响其他进程,增强了系统的健壮...
在实际开发中,结合版本控制系统(如 Git)和持续集成/持续部署(CI/CD)流程,Erlang 模块模板可以进一步提升开发效率和代码可维护性。开发者可以将模板与项目代码一起版本化,确保在项目的不同阶段都能保持代码...
Erlang以其强大的并发处理能力、轻量级进程、热代码替换以及高效错误恢复机制而闻名。在现代IT行业中,Erlang被广泛应用于实时系统、大规模并发服务、云计算平台以及分布式数据库等领域。 "erlangsoft.rar"是一个...
2. **热代码替换**:Erlang 支持运行时代码更新,无需停止整个系统,这对于CI服务器来说意味着可以在不影响服务的情况下进行升级和调试。 3. **分布式**:Erlang系统可以轻松地跨多台机器分布式部署,这对于构建...
- **Mix简介**:Mix是Elixir的官方构建工具,用于编译、打包、部署Elixir应用程序。 - **Mix常用命令**:如`mix new`用于创建新项目,`mix compile`用于编译项目等。 #### 十五、元编程 - **元编程概念**:元编程...
3. **热代码替换**:Erlang支持在运行时更新代码,无需停机即可升级系统,这对于维护大型服务至关重要。 4. **简单错误处理**:Erlang使用模式匹配和异常处理机制,使得错误处理更加直观和简洁。 5. **OTP(Open ...