jgroups - 组协调器死亡时的故障检测
jgroups - Failure Detection when group coordinator dies
JGroups 文档 (http://www.jgroups.org/manual/html/index.html) 指出,当使用 FD 发现协议时,当前组协调器负责在集群的节点死亡时更新集群的视图,但文档中并不清楚当组协调器本身死亡时正在做的事情。
比如我们有一个集群{A,B,C,D},节点A是这里的协调器。
现在,如果一个新成员 'E' 想要加入,那么协调器将启动 JOIN 协议并允许 E 加入集群,如果一个成员,比如 'C',崩溃了,那么 'C' 的邻居将广播可疑消息,协调器的 GMS 协议将排除 'C' 并将新视图广播给集群成员。这是可以理解的。但是,如果组协调器本身死亡,那么(根据某种逻辑)该视图中的下一个成员将接任协调器。
- 我的问题是下一位成员将如何了解新的
查看?
- 是否频道暂时成为协调者
并将新视图安装到成员,每个成员检查是否
通过检查 first/oldest 成员是否是新协调器
在视图中?
首先,您正在查看过时的文档;新的在 http://www.jgroups.org/manual/index.html.
当协调员死亡时,第二个内联将接任并成为新的协调员。因此,如果 B 收到 SUSPECT(A)
消息,它知道它需要接管,因为坐标 (A
) 崩溃了。
请注意,如果您使用 UDP
作为传输方式,FD_ALL
或 FD_ALL2
优于 FD
。
JGroups 文档 (http://www.jgroups.org/manual/html/index.html) 指出,当使用 FD 发现协议时,当前组协调器负责在集群的节点死亡时更新集群的视图,但文档中并不清楚当组协调器本身死亡时正在做的事情。
比如我们有一个集群{A,B,C,D},节点A是这里的协调器。
现在,如果一个新成员 'E' 想要加入,那么协调器将启动 JOIN 协议并允许 E 加入集群,如果一个成员,比如 'C',崩溃了,那么 'C' 的邻居将广播可疑消息,协调器的 GMS 协议将排除 'C' 并将新视图广播给集群成员。这是可以理解的。但是,如果组协调器本身死亡,那么(根据某种逻辑)该视图中的下一个成员将接任协调器。
- 我的问题是下一位成员将如何了解新的 查看?
- 是否频道暂时成为协调者 并将新视图安装到成员,每个成员检查是否 通过检查 first/oldest 成员是否是新协调器 在视图中?
首先,您正在查看过时的文档;新的在 http://www.jgroups.org/manual/index.html.
当协调员死亡时,第二个内联将接任并成为新的协调员。因此,如果 B 收到 SUSPECT(A)
消息,它知道它需要接管,因为坐标 (A
) 崩溃了。
请注意,如果您使用 UDP
作为传输方式,FD_ALL
或 FD_ALL2
优于 FD
。