iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0

當一個新的 Node 加入 cluster,會自動與所有的機器連上。譬如說, node3 connect 到 node1,node2 也 conect 到 node1 ,當連線成功時,node2 也可以跟 node3 溝通。

# node 1
iex(node1@localhost)1> Node.connect(:node2@localhost)
true
iex(node1@localhost)2> Node.connect(:node3@localhost)
true
iex(node1@localhost)3> 
# node 2
iex(node2@localhost)1> Node.list
[:node1@localhost, :node3@localhost]

cluster 會自動定期溝通確保連線狀態

monitor_nodes

使用 :net_kernel.monitor_nodes(true) 可以打開 node 連線斷線的通知

# node 1
iex(node1@localhost)1> :net_kernel.monitor_nodes(true)
:ok
# node 2, 3
iex(node2@localhost)1> Node.connect(:node1@localhost)
true
# node 1
iex(node1@localhost)2> flush
{:nodeup, :node2@localhost}
{:nodeup, :node3@localhost}
:ok

我們將 node 2 與 node 3 關閉時也會得到對應的通知

# node 1
iex(node1@localhost)3> flush
{:nodedown, :node2@localhost}
{:nodedown, :node3@localhost}
:ok

上一篇
26 跨 node 取得 pid
下一篇
28 Cookies
系列文
Elixir 多工 : Processes 與 OTP30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言