-
Notifications
You must be signed in to change notification settings - Fork 65
Prerequisites
DCell requires 0MQ, and uses the ffi-rzmq gem to bind to it.
On OS X, the 0MQ native libraries are available through Homebrew by running:
brew install zeromq
DCell keeps the state of all global configuration data in a service it calls the "registry". DCell supports any of the following for use as registries:
-
Redis (default): a persistent data structures server. It's simple and easy to use for development and prototyping, but lacks a good distribution story.
-
Zookeeper: high-performance coordination service for distributed applications. It exposes common services such as naming, configuration management, synchronization, and group management. DCell uses it as a global node directory server and for storing global configuration data including actor addresses.
-
Cassandra: a distributed database with no single points of failure and can store huge amounts of data. Setup requires creating a keyspace and defining a single column family before staring DCell. The Cassandra backend defaults to a keyspace/CF both named "dcell". There are two rows, "nodes" and "globals" each with one column per entry.
-
Moneta: an abstraction across various key/value stores.
You may pick any of these services to use as DCell's registry. The default is the gossip protocol.
To install a local copy of Redis on OS X with Homebrew, run:
brew install redis
To install a local copy Zookeeper for testing purposes, run:
rake zookeeper:install
rake zookeeper:start
To install a local copy Apache Cassandra for testing purposes, run:
rake cassandra:install
rake cassandra:start