连接

Erlang节点间存在一个语言层面的连接概念。系统初被启动时,系统无法“觉察”任何其他节点,对nodes()求值将返回[]。与其他节点间的连接不是由程序员显式建立的。到远程节点N的连接是在N首次被引用时建立的。如下所示:

  1. 1> nodes().
  2. []
  3. 2> P = spawn('klacke@super.eua.ericsson.se', M, F, A).
  4. <24.16.1>
  5. 3> nodes().
  6. ['klacke@super.eua.ericsson.se']
  7. 4> node(P).
  8. 'klacke@super.eua.ericsson.se'

要想建立到远程节点的连接,我们只需要在任意涉及远程节点的表达式中引用到节点的名称即可。检测网络错误的唯一手段就是使用链接BIF或monitor_node/2。要断开与某节点的连接可使用BIF disconnect_node(Node)

节点之间是松散耦合的。节点可以像进程一样动态地被创建或消失。耦合不那么松散的系统可以通过配置文件和配置数据来实现。在生产环境下,通常只会部署固定数目个具备固定名称的节点。