I need a framework for clustering: messaging, cluster join/leave, distributed task scheduling and cache replication. Preferably all handled under the same framework, with initializition of IPs from DB, with split brain protection, with leader election (and re-election). I don't have a massive amount of servers (1-10, probably not more).
Note - my servers are identical to the point each server in-memory cache (at least the part I plan on sharing) should be replicated from the leader to the followers. Specifically, solutions like EHCAche, terracotta and hazelcast (at least in their default configuration) don't really fit.
Any ideas where I should look? I'm about to give up and roll my own on top of jgroups, but decided to give it another chance. Please back your answers with previous experience with the framework if possible...