Elixir分布式系统原理与运行实践
1. 节点连接基础规则
在分布式系统中,节点连接有一定的规则。一个节点只能连接到具有相同名称类型的节点,也就是说,长名称节点和短名称节点之间无法建立连接。
2. 节点连接的Cookies机制
要连接两个节点,它们必须就一个“魔法cookie”达成一致,这是一种在节点连接时进行验证的密码短语。当首次启动BEAM实例时,系统会为你生成一个随机的cookie,并将其存储在主文件夹的 .erlang.cookie 文件中。默认情况下,在该机器上启动的所有节点都将使用这个cookie。
你可以使用 Node.get_cookie/0 查看你的cookie:
iex(node1@localhost)1> Node.get_cookie()
:JHSKSHDYEJHDKEDKDIEN
可以看到,cookie在内部以原子形式表示。在不同机器上运行的节点会有不同的cookie,因此默认情况下,不同机器上的两个节点无法连接。你需要让所有节点使用相同的cookie,有以下两种方法:
方法一:在所有要连接的节点上调用 Node.set_cookie/1 :
iex(node1@localhost)1> Node.set_cookie(:some_cookie)
iex(node1@localhost)2> Node
超级会员免费看
订阅专栏 解锁全文
1003

被折叠的 条评论
为什么被折叠?



