首页 > 其他 > 详细

erlang集群测试

时间:2016-08-10 06:25:32      阅读:289      评论:0      收藏:0      [点我收藏+]

一、启动四个cmd

  -erl -sname a -setcookie abc

  -erl -sname b -setcookie abc

  -erl -sname c -setcookie abc

  -erl -sname d -setcookie efg

二、节点互联

1 nodes/0 %获得和当前node连接的所有node  
2 net_adm:ping(Node) %ping一个node 成功后就返回pong,表示当前节点连接上了Node节点,加入了Node所在的集群,失败返回pang(也许还有出错信息) 

  测试可以按照下图红色数字的顺序输入技术分享

  1.在a下输入net_adm:ping(b),当a连接上b的时候返回了pong表示成功,

   可以在a输入nodes(),可以看见当前节点已经连接的节点集群[b@GFRGXC9STGLOIAA],

     可以在b输入nodes(),可以看见当前节点已经连接的节点集群[a@GFRGXC9STGLOIAA],

  2.在a下输入net_adm:ping(c),当a连接上c的时候返回了pong表示成功,

     此时:

   在a输入nodes(),可以看见当前节点已经连接的节点集群[b@GFRGXC9STGLOIAA,c@GFRGXC9STGLOIAA],

     在b输入nodes(),可以看见当前节点已经连接的节点集群[a@GFRGXC9STGLOIAA,c@GFRGXC9STGLOIAA],

     在c输入nodes(),可以看见当前节点已经连接的节点集群[a@GFRGXC9STGLOIAA,b@GFRGXC9STGLOIAA],

     说明:erlang默认情况下使用的是全连接的方式,当任意节点加入集群的时候,该集群内的所有节点相互之间都已经建立了连接

  3.当在a连接d节点的时候返回pang表示失败,因为a节点和b节点所使用的cookie不同,要想建立连接,必需使用相同的cookie

    ps:如果想让d节点加入到集群,就需要修改d节点的cookie值,可以使用auth:set_cookie/1来修改当前node的cookie,使用auth:get_cookie/1获取当前node的cookie

    当d修改cookie之后,则可以成功加入到集群

 

总结命令:

erl -sname 名字 %建立一个node

erl -sname 名字 -setcookie Value  %建立一个cookie值为Value的node

net_adm:ping/1 %ping一个node pong就连接 pang表失败
auth:get_cookie/1 %获得当前node的cookie值
auth:set_cookie/1 %修改当前的node的cookie值(已连接下不会断开和其他node的连接)
auth:set_cookie/2 %第一个参数是另外一个node(node和cookie都是原子 用‘ ‘)第二个参数是那个node的cookie 用来让不同cookie的两个node连接

erlang集群测试

原文:http://www.cnblogs.com/huangxiaoyi/p/5755233.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!