short name:
longname:
说明:
Name :: atom() || string()
ShortHost :: atom() || string(), 不可含有"."。比如"myhost"
FullHost :: [ShortHost()] || Ip, 比如"test.mydomain.com"和"8.34.135.3"
short name 和 long name主要为格式上的区别,long name中Host如果为域名,需要进行DNS解析。
我们也可以在hosts中添加类似:
ip ShotHost
的Entry使shortname name节点支持其他主机(请参考后面介绍)
Note
注意,shot name的节点和long name的节点不能互相通信。
short name:
假设本机/etc/hosts配置为:8.27.86.135 da6600.fb.joyent.us
erl
-sname
cheng
% 启动了一个名叫:cheng@da6600
的Node
erl
-name
cheng
% 启动了一个名叫:cheng@da6600.fb.joyent.us
的Node
如果我们的本机hosts配置中,没有指定域名,那么需要我们指定Host:
erl
-sname
cheng@da6600
% 启动了一个名叫:cheng@da6600的Node
long name:
erl
-name
cheng@da6600
erl
-name
cheng@da6600.fb.joyent.us
erl
-name
cheng@8.27.86.135
请注意,此3个longname Node是同一个Node
很多资料中,当进行分布式程序开发时,需要经历下面的步骤
- 本机单个节点进行测试,
- 本机多个节点进行测试,
- 多台主机进行接近真实环境的测试
其中第2步,常常是使用 erl
-sname
Name
类似的方法,产生Node,
因此我们印象中,好像sname只能是在本机的情况下使用?
通常情况下,shortname是限于本机的多个节点,longname可以跨越多台主机(通过IP,DNS解析)。
当然我们也可以像使用long name Node一样,使用short name Node。不同的是long name可以通过DNS进行解析,
而short name必须手动的在hosts中添加对应的映射。这样做的目的就是将本地的请求转发到目标的主机。
好了让我们使用short name来试验一下
server1(ip:8.27.86.135)
启动node:
erl -sname foo@server1
server2(server2也可以在内网当中,此时链接只能由server2发起)
/etc/hosts中添加:
8.27.86.135 server1
随后启动node:
erl -sname bar
> net_kernel:connect_node('foo@server1').
true
> nodes().
> [foo@server1]
这样,两个节点就已经链接了。
同理,我们也可以在server1中添加一个条目,为server2其一个ShortName,随后连接它。
到此,对于short name, long name的使用应该比较清晰了。
相关推荐
在Erlang中,你可以使用`erlang:monitor_node/2`和`erlang:demonitor/1`函数来监控和取消监控其他节点的状态。当需要两个未连通的节点C和D进行通信时,可以在节点C上执行: ```erlang erlang:monitor_node(node(d),...
1.完成makefile,直接运行/...2.完成启动多节点的脚本,运行/script目录中的run.cmd可以启动3个节点, 节点的配置在/config目录config.txt中 3.完成跨节点函数的调用,记录日志都会在gm节点中执行 4.完成日志记录系统
骡子郎运输 可以向 Erlang 节点发送消息和从 Erlang 节点接收消息的传输。先决条件必须在要使用此传输的主机上安装 Erlang R13B01 或更高版本。在使用 Erlang 传输之前必须在启动 Erlang 连接器之前运行。 如果你有...
Pyrlang-Python中的Erlang节点这是Python 3.5中的嵌入式Erlang节点实现,实现了网络Erlang节点协议。 它旨在允许现有的Python项目与BEAM语言(Erlang,Elixir,Alpaca,Luaerl,LFE,Clojerl等)之间进行互操作。 仅...
Akka是一个用Scala语言构建的高性能、分布式...这涉及到Akka的`akka-cluster`模块,Erlang节点的连接和配置,以及Actor与Erlang进程之间的通信。要了解更多细节,深入研究`ainterface-master`源代码是必不可少的步骤。
它是原始改进版本,可与新的和现代的堆栈配合使用。 埃尔朗菲 讲出Erlang网络协议并模拟网络上的Erlang节点。 完全能够与Erlang进行双向通信。 在合理范围内,Erlang类型已映射到Haskell类型。 发给Erlang的消息只是...
Ergo框架 在Golang中实现Erlang / OTP。 速度是原始Erlang / OTP的x5倍。...Erlang节点(运行单节点/) (以摆脱erlang的依赖) 产生类似Erlang的进程 使用简单原子注册/注销过程 GenServer行为支持(具有原子状态)
6. **性能优化**:提供关于如何最大限度地提高CNode与Erlang节点之间通信效率的提示和最佳实践。 7. **案例研究和示例代码**:提供实际的应用场景和代码示例,帮助用户更好地理解和应用CNode技术。 **更多erlang...
Erlang 的分布式特性使其能在多个节点之间轻松部署和管理应用程序。它内置了分布式的原语,支持cnode和jnode,进程可以在节点间自由迁移。节点间的通信高效、安全,通过epmd实现类似DNS的名称解析。OTP(Open ...
"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,旨在帮助初学者理解和掌握Erlang的核心概念和特性。 ### 1. 函数式编程基础 Erlang基于函数式编程范式,这意味着程序由纯函数构成,没有副作用。...
- **分布式计算**:Erlang天生支持分布式系统,可以在多个节点上运行,并能透明地处理节点间的通信。这使得构建大规模并行应用成为可能,尤其适合处理高并发场景。 - **容错性**:Erlang采用故障隔离和恢复策略,当...
《Erlang和OTP实战》是一本专注于Erlang编程语言和OTP(Open Telecom Platform)框架的专业书籍。这本书深入浅出地介绍了Erlang在分布式系统、并发处理以及高可用性设计中的应用,同时结合 OTP 提供了强大的工具和库...
**Ansible-nodetool 模块详解** Ansible 是一款强大的自动化运维工具,它允许系统管理员无需在目标机器上...通过它,你可以利用 Ansible 的强大功能来自动化和简化对 Erlang 节点的运维工作,提高效率,减少人为错误。
- **分布式**:Erlang节点可以在多台机器上运行,并可以相互通信,实现分布式计算。 - **热升级**:Erlang支持在线代码升级,无需停机即可更新应用,保证服务的连续性。 - **错误处理**:Erlang采用异常处理机制,...
Erlang和RabbitMQ是两个在分布式系统和消息队列领域中至关重要的技术。Erlang是一种函数式编程语言,以其并发性、容错性和热代码升级能力而闻名,而RabbitMQ则是基于Erlang构建的一个开源消息代理,用于实现应用程序...
2. **分布式特性**:Erlang的分布式节点通信,分布式数据管理,以及如何在多台机器上部署和运行Erlang应用。 3. **故障恢复与容错**:Erlang的错误处理模式,如监控树(supervision trees)和故障检测,以及如何...
Erlang22.3和RabbitMQ3.8.4是两个紧密相关的技术组件,它们在分布式系统和消息队列领域中发挥着至关重要的作用。Erlang是一种并发性极强、容错性良好的编程语言,而RabbitMQ则是一个基于AMQP(Advanced Message ...
4. **优化节点间通信**:对于跨节点通信,可以采用更高效的协议和数据传输格式,比如使用二进制格式代替传统的Erlang术语表(ERT)格式,以减少序列化和反序列化的开销。 5. **测试与模拟**:在部署分布式系统之前,...
Erlang的heart进程是系统监视器,它负责监测和恢复Erlang节点的故障。这个机制是Erlang高可用性的基础。 #### 9. 新增特性和更新 ***g的R12B版本包含了Percept等新模块,提供了更深入的性能监控和调测工具。Erlang...
Erlang是一种面向并发、分布式计算的语言,常用于构建高可用性和容错性的系统。Python则以其简洁的语法和丰富的库资源广泛应用于数据处理、Web开发等领域。这个项目可能是为了在Erlang系统中调用Python模块,或者...