Hello!
I need architectural advise regarding cluster bootstrap in dynamic environment, Docker Swarm to be precise.
I have a cluster that bootstraps by means of Akka Management Cluster Bootstrap using akka-dns as a discovery method.
Is it ok that all nodes have exactly one service-name specified in contact-point-discovery section?
Here is the configuration:
management.cluster.bootstrap.contact-point-discovery {
service-name = "tasks.service1"
port-name = ""
protocol = ""
required-contact-point-nr = 1
}
I tried to cross-reference, that is service1 would have the following configuration:
management.cluster.bootstrap.contact-point-discovery {
service-name = "tasks.service2"
port-name = ""
protocol = ""
required-contact-point-nr = 1
}
and service2:
management.cluster.bootstrap.contact-point-discovery {
service-name = "tasks.service1"
port-name = ""
protocol = ""
required-contact-point-nr = 1
}
but it ends up in multiple separate clusters with only one node in each.
My second question is more about delivery complexity.
Lets assume I have multiple environment to deliver to (env1, env2, …, envN, etc. ).
Each env has it’s own list of services that have to be running on that env.
If I have exactly one contact-point-discovery service-name specified in each cluster service, soon or later I will end up in a situation when I have to deliver that service to each environment, which doesn’t sound to me as a good idea.
Perhaps it’s better to have a dedicated service with sole purpose is to be the seed node?