1

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...

Ran Biron
  • 6,317
  • 5
  • 37
  • 67

1 Answers1

0

It may be possible that using Zookeeper with Curator you will achieve exactly the items you pointed.

http://zookeeper.apache.org/

  • From the site: "ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications. Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of services, applications initially usually skimp on them ,which make them brittle in the presence of change and difficult to manage. Even when done correctly, different implementations of these services lead to management complexity when the applications are deployed."

http://curator.apache.org/

Curator will give you

  • Recipes: Implementations of some of the common ZooKeeper "recipes". The implementations are built on top of the Curator Framework.
  • Framework: The Curator Framework is a high-level API that greatly simplifies using ZooKeeper. It adds many features that build on ZooKeeper and handles the complexity of managing connections to the ZooKeeper cluster and retrying operations.
  • Utilities: Various utilities that are useful when using ZooKeeper. Client A replacement for the bundled ZooKeeper class that takes care of some low-level housekeeping and provides some useful utilities.
  • Errors: How Curator deals with errors, connection issues, recoverable exceptions, etc.
  • Extensions: The curator-recipes package implements the common recipes that are described in the ZooKeeper documentation. To avoid bloating that package, recipes/applications that have a vertical appeal will be put in separate "extension" packages using the naming convention curator-x-name.