连接
Erlang节点间存在一个语言层面的连接概念。系统初被启动时,系统无法“觉察”任何其他节点,对nodes()求值将返回[]。与其他节点间的连接不是由程序员显式建立的。到远程节点N的连接是在N首次被引用时建立的。如下所示:
- 1> nodes().
- []
- 2> P = spawn('klacke@super.eua.ericsson.se', M, F, A).
- <24.16.1>
- 3> nodes().
- ['klacke@super.eua.ericsson.se']
- 4> node(P).
- 'klacke@super.eua.ericsson.se'
要想建立到远程节点的连接,我们只需要在任意涉及远程节点的表达式中引用到节点的名称即可。检测网络错误的唯一手段就是使用链接BIF或monitor_node/2。要断开与某节点的连接可使用BIF disconnect_node(Node)。
节点之间是松散耦合的。节点可以像进程一样动态地被创建或消失。耦合不那么松散的系统可以通过配置文件和配置数据来实现。在生产环境下,通常只会部署固定数目个具备固定名称的节点。