【问题标题】:Akka Cluster status Weakly UpAkka Cluster 状态 Weakly Up
【发布时间】:2018-09-09 08:41:19
【问题描述】:

我阅读了 Akka 文档并找到了这个

如前所述,如果一个节点不可达,那么八卦收敛是不可能的,因此任何领导者的行动也是不可能的。通过启用 akka.cluster.allow-weakly-up-members(默认启用),可以在尚未达到收敛的情况下提升新加入的节点。这些 Joining 节点将被提升为 WeaklyUp。一旦 gossip 收敛,leader 会将 WeaklyUp 成员移动到 Up。

但它没有解释 WeaklyUp 状态的目的是什么。那么,请帮我解释一下WeaklyUp和Joining有什么区别?

【问题讨论】:

  • 欢迎来到 Stack Overflow!请带上tour 并通读help center,特别是如何提问。你最好的选择是做你的研究,搜索关于 SO 的相关主题,然后试一试。在进行更多研究和搜索后,发布您的尝试Minimal, Complete, and Verifiable example,并具体说明您遇到的问题,这可以帮助您获得更好的答案。

标签: akka-cluster


【解决方案1】:

WeaklyUp 的含义是特定于应用程序的。 (毕竟,正如您所指出的,是否允许 WeaklyUp 是可配置的。) WeaklyUp 是一种情况,表明新节点与领导者同步但所有节点尚未就新节点的状态达成一致(因为尚未达到收敛,因此获得了真正的 Up 状态。

您对处于该状态的节点做什么取决于您自己。例如,WeaklyUp 节点可能会接收来自外部世界的传入流量。由于 WeaklyUp 节点知道集群的完整状态,因此它知道如何处理所有传入的请求,甚至是需要集群感知路由的请求。

例如,Akka Bootstrap(默认情况下)将向 Kubernetes 报告 WeaklyUp 节点为“就绪”。从而使 WeaklyUp 节点有资格接收传入流量。这就是您问题的规范答案:WeaklyUp 节点可以接收和处理请求并将消息路由到集群中的其他节点。当然,它也可以接收响应,因为远程处理正常工作。另一个例子是 WeaklyUp 成员也有资格使用集群感知路由。因为如果集群感知路由器知道 WeaklyUp 节点,那么其他一些节点可能不知道 WeaklyUp 节点的事实是没有意义的。

但是,正如文档所示,WeaklyUp 成员有很多限制,因为并非所有成员都看到了新节点,因此不能允许它做任何取决于收敛的事情:比如参与仲裁决策或分片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多