【发布时间】:2019-04-21 07:24:57
【问题描述】:
在分布式情况下,例如运行在不同机器上的 3 个节点,它们在 Erlang/Elixir 中默认连接为 clique。我们称它们为 A、B 和 C(它们通过调用 network:connect 显式连接)。假设 A 和 B 之间发生网络中断。
1) A 和 B 之间的中断是否会触发 A 和 B 上的进程之间的链接断开 (spawn_link),因为我们仍然有 C 作为中间连接节点。那么 monitor_node (将在 A 或 B 上触发)呢?
2) 由于 C 作为中间连接节点,我们还能从 A 的进程向 B 的进程发送消息吗?
3) Erlang/Elixir 的成员资格组件如何解决这种情况?连接是否会恢复,毕竟没有什么不好的事情发生(没有链接断开,没有返回 monitor_node 消息,就像一切都立即恢复一样)?
感谢您对这个问题的任何考虑!
【问题讨论】:
标签: erlang elixir erlang-otp