我想指示 Aeron 集群中的任何节点成为领导者,没有选举。前任领导者自动成为追随者,从不尝试担任领导职务(除非受到外部指示)。
我看了看Cluster/Role
,ClusterTool
APIAeronCluster
似乎没有任何帮助。我也检查了一下AppointedLeaderTest
,归结为最初用 指定领导者ConsesusModule.Context.appointedLeaderId
,但之后没有办法动态更改它?
这个怎么做?
我想指示 Aeron 集群中的任何节点成为领导者,没有选举。前任领导者自动成为追随者,从不尝试担任领导职务(除非受到外部指示)。
我看了看Cluster/Role
,ClusterTool
APIAeronCluster
似乎没有任何帮助。我也检查了一下AppointedLeaderTest
,归结为最初用 指定领导者ConsesusModule.Context.appointedLeaderId
,但之后没有办法动态更改它?
这个怎么做?
无法按照您的建议运行 Aeron 集群。(亚伦 1.27.0)
Aeron 集群基于RAFT 共识算法,它定义了选举协议,并规定在该时间点拥有最先进日志的节点将成为领导者。
分配指定的LeaderId 可以防止未指定的节点在选举中提议自己作为候选人。
通过使用动态成员资格,您可能能够实现一些您想要的。
或者给定一个静态集群,稍微更暴力的方法是:
注意:这两种解决方案的复杂性/计算成本都可能超过能够指定节点作为领导者的任何好处。