-
Erlang中进程占用稀有资源(例如listen-port)时, 如何进行"热替换"?10
这几天看Erlang中的"热替换"这个特性时, 发现一个问题, 如下:
我用gen_tcp:listen(8888, ...)占用了8888这个端口, 然后我想在程序运行的状态下, 重新修改下Src (ReCompile), 我的步骤是这样的:
1. c(test).
2. test:listen(8888).
3. 修改test的src
4. c(test).
5. test:listen(8888). %%这里错误了.
原本我想的比较简单, 按照一般的程序来说, 直接运行一个新的版本, 后续的client程序就会调用到这个新的版本上, 但是现在看不能这么做.
我想在不中断test程序的基础上进行"热替换",
请问前辈们是如何解决这个问题的呢???
备注:
我目前想到的一种方法是"绕过", 即把listen()的程序和process()的程序分别写在不同的module中, 这样recompile的时候只recomiple - process()的模块, 应该就可以避免这个问题, 这也是我能想到的唯一解决这个问题的方法了~_~
2009年7月24日 10:38
目前还没有答案
相关推荐
- 如何处理不兼容的热代码替换,例如当新版本API与旧版本不兼容时。 - 热代码替换的最佳实践,包括测试和回滚策略。 - 在大规模集群中的热代码替换策略,如分批更新或蓝绿部署。 总之,理解和掌握Erlang的应用部署...
erlang-sd_notify-1.0-2.el7.x86_64.rpm
Erlang以其强大的错误恢复能力和轻量级进程(称为Erlang进程)而闻名,这些进程具有内置的并发性和容错性。 在安装Erlang 24.3.4.4之前,首先需要了解你的操作系统是否支持。Erlang支持多种平台,包括Windows、...
erlang-asn1-19.3.6.4-1.el7.x86_64.rpm
在Erlang中,进程是并发执行的基本单元,它们轻量级且独立,彼此通过消息传递进行通信。下面将详细介绍Erlang中的进程以及如何使用它们进行并发开发。 1. 进程概念 在Erlang中,进程不同于操作系统中的线程或进程。...
在 Erlang 中,Port Driver 是一种机制,允许 Erlang 进程与外部 C 库或者其他语言编写的程序进行通信。Port Driver 提供了一种方式,使得 Erlang 系统能够与外部世界交互,执行低级别的I/O操作或调用非Erlang代码...
error: /tmp/esl-erlang_26.0.2-1~alinux~3_x86_64.rpm : not an rpm package (or packape manifest): arning: /tmp/rabbitmg-erver 3.12.4-1 all.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY ...
Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...
本文将深入探讨Erlang中的代码热替换(Code Replacement)技术及其在应用部署中的重要性。 代码热替换是Erlang的一大特色,它允许在不中断运行服务的情况下更新和替换正在运行的代码。这一特性使得Elang系统可以在...
Erlang以其轻量级进程、消息传递模型和热代码更新等特性,为构建高可用性和可扩展性的系统提供了强大的支持。 RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)标准...
在标题中的"erlang-18.3-1.el7.centos.x86_64.zip",我们看到的是Erlang的一个特定版本,18.3,针对64位的CentOS 7操作系统(el7)的安装包。这个版本的Erlang包含了必要的组件和服务,使得它能够在CentOS 7上稳定...
- **概念**: Port驱动程序允许Erlang进程与外部程序进行通信。 - **实现**: 通过`erlang:open_port/2`函数创建一个Port。 - **应用场景**: 实现Erlang与C语言编写的程序之间的交互。 #### 13. SMP支持 - **概念**: ...
1. **轻量级进程**:Erlang中的进程非常轻便,消耗资源少,可以实现大量并发处理,适合构建高并发、高可用性的系统。 2. **分布式计算**:Erlang节点间可以通过网络进行通信,允许在多台机器上分布运行程序,提高了...
**protobuf与Erlang** `protobuf`,全称Protocol Buffers,是Google开发的一...通过其优化的编码和解码过程,以及对Erlang特性的良好适应,它在处理大量数据时表现出色,是构建高性能、可扩展的Erlang应用的理想选择。
2. **热代码替换**:允许在运行时更新代码,无需停止系统服务,这对持续运行的服务如RabbitMQ非常有用。 3. **分布式**:Erlang节点可以在不同机器上运行,它们可以相互通信,构建分布式系统。 4. **容错性**:...
2. **进程间通信 (IPC)**:Erlang 支持进程之间的消息传递,这使得旧版本的进程可以通过 IPC 与新版本的进程进行通信。 3. **代码迁移**:Erlang 提供了机制来优雅地让旧版本的进程迁移到新版本的模块上。 #### 四...
esl-erlang_24.2.1-1_centos_7_amd64.rpm
erlang-xmerl-22.3-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
在安装"erlang-otp-win64位 25.3版本"时,首先需要下载对应的安装包,如"otp_win64_25.3.exe"。这个文件是一个自解压的可执行程序,双击后会引导用户进行安装过程。安装过程中,通常会接受默认设置,或者根据需求...