当我们想要实现跨节点间的消息传递,首先需要保证两个节点之间应当是互联的,如果只是建立连接,最简单的方法就是使用标准库函数net_adm:ping/1,同时两个节点的cookie应该保持一致,我们可以使用内置函数set_cookie(Node,Cookie)或者在启动节点时-setcookie以确保它们是一致的,用auth:get_cookie()函数可以检查当前ERLANG节点的cookie。 假设我们现在已开经开启了两个节点,它们互联而且具有相同的cookie。 在一个节点上注册一个进程,然后让进程接收消息,现在我们使用另一个节点向它发送消息 我们向前一个节点发送了一个”hello”的消息,节点收到消息时,它会将这个消息打印出来 这样我们就在两个节点之间实现了最简单的通信。 你也可以使用ERLANG的标准库模块rpc来执行一个远程调用: Rpc:call(Node,Mod,Fun,[Arg1,Arg2…]) 这个函数可以远程调用Node节点下的Mod:Fun([Arg1,Arg2…])函数。
|