[erlang-questions] Forming a cluster

Per Hedeland per@REDACTED
Thu Oct 25 00:18:10 CEST 2007


"Kenneth Lundin" <kenneth.lundin@REDACTED> wrote:
>
>By using
>net_adm:names(Host)
>or
>net_adm:names()
>
>The newly started node can find out about other nodes already started.
>Of course this requires knowledge of the possible Hosts which can
>have running nodes.

It could also be claimed that this is "abuse" of epmd. Unless you have a
host/network dedicated to your application, you have no reason to assume
that you should be talking to other nodes that happen to have registered
with epmd on the hosts you're interested in - epmd's purpose in life is
to map "alive-names" to TCP distribution ports of currently running
nodes, nothing more.

I would rather recommend using "standard" IP techniques - e.g. designate
an "unused" UDP port as "point of contact" for your application. The
existing nodes in the cluster agree (somehow) among themselves who
should listen to that port on each host, and newly arriving nodes send a
"I'm here and my name is ..." message to the port. By using UDP you can
also use broadcast and/or (if you're lucky) multicast to find nodes on
other hosts.

--Per Hedeland



More information about the erlang-questions mailing list