Re: erlang cluster partitioned
Dániel Szoboszlay <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CADcfxon7w0RFa2OL_gZ1mYrjMqBiFbKiV--mtscvLa7x50Vj2Q@mail.gmail.com> |
You can create a process that calls erlang:monitor_node(Node, true) for all
nodes expected to be in the cluster. Then whenever you receive a {nodedown,
Node} in that process you can monitor_node the failed node after some
cooldown time. Since monitor_node will attempt to connect to the node if
it's not already connected, this would be enough to restore failed
connections.
Cheers,
Daniel
On Tue, 30 Nov 2021 at 06:57, saket chaudhary <[email protected]> wrote:
> There're no firewalls to speak of. Things do work as is all the time
> except when we hear of network activity with router or switch upgrades in
> some parts that we've got no control of. But our app needs to be resilient
> to that. Things also work when the entire cluster gets restarted.
>
> What must be done to make sure we have a fully formed mesh that can
> withstand temporary disruptions and heal itself eventually? Should I write
> something that ensures every node pings every other node in the cluster
> that's statically configured?
>