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?