Akka.net:我应该为Lighthouse/Seed节点指定“splitbrainresolver”配置吗?
创始人
2024-08-05 08:01:04
0

在 Akka.Cluster 中,Lighthouse/Seed 节点是用 Split Brain Resolver 解决脑裂问题的。

因此,在 Lighthouse/Seed 配置中,应该包含 Split Brain Resolver 的配置信息。

例如,以下是一个基本的 Lighthouse 配置示例:

akka {
    actor.provider = cluster
    remote.dot-netty.tcp {
        transport-class = "Akka.Remote.Transport.DotNetty.TcpTransport, Akka.Remote"
        applied-adapters = []
        transport-protocol = tcp
        port = 8090  # port can be any valid available port
        hostname = "localhost" # hostname can be IP or DNS, but DNS is recommended
    }
    cluster {
        seed-nodes = ["akka.tcp://MyCluster@localhost:4053"]
        # add split-brain-resolver configuration here 
    }
}

在上例中,我们需要添加 Split Brain Resolver 配置。以下是一些示例配置:

split-brain-resolver {
    # Mix majority strategy means that in a partition *where the number of nodes is odd*, the majority group should be merged.
    # In a partition *where the number of nodes is even*, these nodes don't form a majority and should shut down.
    # This can eventually cause the whole cluster to shut down, which is why this strategy is not recommended.
    #mix-majority-strategy {
    #    thresholds {
    #        acceptable-size-difference = 1
    #    }
    #}
 
    keep-majority-strategy {
        thresholds {
            majority-size = 4
            unreachable-size = 2
            # if a node sees unreachable nodes with unreachability-level >=2, when it itself is a part of the majority, it will trigger downing those nodes
            down-all-when-unstable = true 
            # if there are not enough reachable nodes to satisfy the threshold, the actor system will shut down
            reachable-size = 3
        }
    }
}

对于以上示例中的 Lighthouse 配置,我们应该在 cluster 部分添加 Split Brain Resolver 的

相关内容

热门资讯

Android Studio ... 要解决Android Studio 4无法检测到Java代码,无法打开SDK管理器和设置的问题,可以...
安装tensorflow mo... 要安装tensorflow models object-detection软件包和pandas的每个...
安装了Laravelbackp... 检查是否创建了以下自定义文件并进行正确的配置config/backpack/base.phpconf...
安装了centos后会占用多少... 安装了CentOS后会占用多少内存取决于多个因素,例如安装的软件包、系统配置和运行的服务等。通常情况...
按照Laravel方式通过Pr... 在Laravel中,我们可以通过定义关系和使用查询构建器来选择模型。首先,我们需要定义Profile...
按照分类ID显示Django子... 在Django中,可以使用filter函数根据分类ID来筛选子类别。以下是一个示例代码:首先,假设你...
Android Studio ... 要给出包含代码示例的解决方法,我们可以使用Markdown语法来展示代码。下面是一个示例解决方案,其...
Android Retrofi... 问题描述:在使用Android Retrofit进行GET调用时,获取的响应为空,即使服务器返回了正...
AmazonsS3Client... 可以通过在代码中添加host属性来解决这个问题。具体步骤如下所示:1.将S3客户端的建立方法中的环境...
Alexa技能在返回响应后出现... 在开发Alexa技能时,如果在返回响应后出现问题,可以按照以下步骤进行排查和解决。检查代码中的错误处...