在没有rebar的时代,要打包项目及热升级,需要使用reltool,systools,release_handler等工具,还必须熟悉各种配置,有了rebar这个神器,所有的事情都变得非常的简单,所以这里就只简要的记录一下热升级的操作流程,哪怕是初学者,看后稍一操作琢磨就会理解
假定project名称:unicorn
1、编译打包
./rebar clean ./rebar compile ./rebar generate ###rebar的一个小bug,回滚时会用到这个文件,可以把这个操作写在reltool.config中 cp rel/unicorn/releases/1.1/unicorn.boot rel/unicorn/releases/1.1/start.boot ./rebar generate-appups privious-release=/opt/unicorn/dsfreg ./rebar generate-upgrade privious-release
2、上传升级包到目标节点:
scp releases/unicorn_1.1.tar.gz unicorn@192.168.0.10/opt/unicorn/dsfreg/releases
3、登录到目标节点执行rebar生成的install_upgrade.escript
./bin/install_upgrade.escript unicorn prjcookie unicorn-1.1
如果部署节点没有安装erlang运行环境,这一步也可以在本地用终端连接到远程节点直接执行,但是这样操作要小心,不要轻易执行q()
erl -sname admin -setcookie prjcookie CTRL-G c unicorn@192.168.0.10 j 2 release_handler:unpack_release("unicorn_1.1"). release_handler:check_install_release("1.1"). release_handler:install_release("1.1"). release_handler:make_permanent("1.1").
4、回滚
release_handler:install_release("1.0"). release_handler:make_permanent("1.0").
相关推荐
热代码替换是Erlang的一项核心特性,允许在不中断运行服务的情况下更新应用程序代码。它分为三个阶段:停止旧进程、加载新代码和启动新进程。 1. **加载新代码**:使用`code:load_file/1`或`code:replace/2`加载新...
**Erlang程序设计与入门** Erlang是一种并发、函数式编程语言,主要用于构建分布式、高可用性、容错性强的系统。它的设计灵感来源于电信行业的需求,由瑞典爱立信公司于1986年开发。Erlang以其独特的并发模型、轻量...
4. **热代码升级**:在Erlang中,可以在不中断服务的情况下更新应用程序代码,这降低了系统维护的复杂性和停机时间。 5. **动态类型**:Erlang是一种动态类型语言,变量无需预先声明类型,提高了开发效率。 6. **...
6. **热代码升级**:Erlang允许在运行时替换和更新代码,而无需停止整个系统,这是其在高可用性场景下的一大优势。理解如何编写可热升级的代码和使用工具进行升级操作至关重要。 7. **分布式特性**:Erlang节点可以...
"erlang_environment_win64_21.0.1.zip" 是一个专门为Windows 10 64位操作系统提供的Erlang开发环境的安装包。这个压缩文件包含了两个关键组件:otp_win64_21.0.1.exe 和 erlang_environment_win64_21.0.1。 otp_...
2. **容错性**:Erlang支持热代码替换,可以在不中断服务的情况下更新运行中的代码。如果某个进程出现故障,系统可以自动隔离并重启它,保证整体服务的稳定性。 3. **分布式**:Erlang天生支持分布式计算,节点间...
5. **BEAM虚拟机**:Erlang程序运行在BEAM虚拟机上,理解其工作原理对于优化性能和解决运行时问题至关重要。 6. **并发编程**:Erlang的并发模型基于轻量级进程(LWP),学习如何创建和通信进程,以及处理分布式...
6. **热更新**:Erlang支持代码的热更新,即在不中断服务的情况下升级系统。这一特性在维护高可用性系统时极为重要,因为它允许修复错误或添加新功能,而无需停机。 7. **实时性能**:由于Erlang的运行时系统优化了...
Rebar3简化了依赖管理和构建流程,确保项目遵循最佳实践。 8. **源码结构**:在"otp_src_25.0.2"目录下,你可以找到Erlang OTP的源码组织结构,了解不同模块的职责和交互方式,这对于深入理解和定制OTP系统至关重要...
5. **热更新**:Erlang系统可以在运行时更新代码,无需停止服务,这对于实时系统尤其重要。 6. **Erlang VM(BEAM)**:BEAM虚拟机是Erlang的执行环境,它优化了并发和内存管理,使得Erlang程序能在低硬件资源下...
术语帽库在操作系统中主要用于获取终端的特性,比如颜色支持、光标移动等功能,使得程序可以适配各种不同的终端环境,确保输出的正确显示。Erlang 是一种并发、分布式、热代码加载的函数式编程语言,广泛应用于电信...
"otp_win64_21.0.1.exe" 和 "otp_win32_21.0.1.exe" 是Erlang/OTP(开放电信平台)的Windows版本安装程序,分别对应于64位和32位操作系统。OTP是Erlang环境的一个核心组成部分,包含了库、开发工具和运行时系统,为...
2. **故障恢复**:Erlang的进程独立性和热代码替换功能使得系统在出现错误时可以优雅地失败,并且能够在运行时更新代码,无需重启服务。 3. **分布式**:Erlang天生支持分布式计算,节点间的通信如同本地进程一样...
- **热代码升级**:Erlang系统支持在线代码更新,无需停机即可替换正在运行的代码,这对于维持高可用性服务至关重要。 - **故障恢复**:Erlang的系统设计强调容错性,当一个进程崩溃时,其他进程可以捕获这个信息并...
4. GitHub Actions:这是一个GitHub提供的持续集成/持续部署(CI/CD)工具,允许开发者自定义工作流,自动化代码测试、构建和发布流程。 5. 测试框架:在“ghatest”中,“test”可能表示项目包含了测试代码,这是...
6. **热代码替换**:Erlang支持在运行时更新代码,无需停止正在运行的系统,这对于维护和升级服务特别有用。 在学习Erlang的过程中,实践是至关重要的。通过编写实际的项目,你可以更好地理解这些概念,并掌握如何...
描述中提到的“工作正在进行中”,可能意味着这个压缩包包含的是一个正在开发或更新的 OTP 版本,或者是与 OTP 相关的项目。这可能是一个源代码仓库的一部分,包含了构建、测试或部署过程中的一些中间状态。 在标签...
RabbitMQ可以用多种语言编写的应用程序(包括Erlang和Java)之间提供可靠的异步通信。在Erlang OTP环境中,RabbitMQ因其高可用性、可扩展性和丰富的客户端库而被广泛采用。 压缩包内的文件名称"otp_src_25.3"很可能...
7. **热更新**:Erlang程序可以在运行时更新,无需停止服务,这在维护大型系统时非常有用。 8. **分布式特性**:Erlang节点可以轻松地跨多台机器分布,形成集群,共享状态并协同工作。 【压缩包子文件的文件名称...
Erlang的强项在于其错误恢复机制和热代码升级功能,这对于一个聊天服务器来说至关重要,因为它们可以保证服务的连续性和稳定性。 2. **Aurora服务器架构**:Aurora服务器可能采用了模块化设计,各个组件之间通过...