Singlets are not even reliable in a single process. You can load the same class through several class loaders and end up with multiple "singleton" objects.
Singleton is an anti-pattern for some reason - avoid it.
In a cluster, things are even worse, since all nodes must coordinate the decision where the singleton will be located. This is vulnerable to network separation, so it is untenable. The Brewer CAP Theorem will give you some idea about this.
source share