'why function cluster.state().members() isUp has different values in different node of same cluster?
I have a cluster, includes 9 nodes, let's say node1, node2 ... node9, they all configured as seednodes In my code, it has below function to print out all members,
List<String> nodeAddressList = new ArrayList<>();
Cluster cluster = Cluster.get(AkkaClusterManager.instance().clusterSystem());
scala.collection.immutable.List<Member> nodeList = cluster.state().members().toList();
Function1<Member,Void> itr = (Member node) -> {
if (node.status() == MemberStatus.up()) {
nodeAddressList.add(node.address().toString());
}
return null;
};
nodeList.foreach(itr);
System.out.println(nodeAddressList.toString());
I find a weird thing, in node9's log, it have itself, node1, node3, node4, node6
while in node1's log, it have itself, node2, node3, node4, ..., node8. Does not have node9!
I don't understand why node9 have node1 as member, while node1 doesn't
Here is the akka config file
akka {
actor {
provider = "cluster"
serialization-bindings {
"com.test.akka.CborSerializable" = jackson-cbor
}
}
remote {
log-remote-lifecycle-events = off
artery.enabled = on
artery.canonical.port = 2551
artery.canonical.hostname = nodename
bind.hostname = localhost
bind.port = 2551
}
cluster {
seed-nodes = [
"akka://ClusterSystem@node1:2551",
...
"akka://ClusterSystem@node9:2551",
]
}
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = "DEBUG"
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
