Skip to content

Commit

Permalink
Move this section to the top
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelklishin committed Jul 7, 2017
1 parent a1cc536 commit cdfd544
Showing 1 changed file with 23 additions and 33 deletions.
56 changes: 23 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
RabbitMQ Autocluster
====================

A RabbitMQ plugin that clusters nodes automatically using a number of peer discovery mechanisms:
What it Does
------------

This plugin provides a mechanism for peer node discovery in RabbitMQ
clusters. It also supports a few opinionated features around cluster
formation and "permanently unavailable" node detection.

Nodes using this plugin will discover its peers on boot and (optionally) register with
one of the supported backends:

* [AWS EC2 tags](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
* [AWS Autoscaling Groups](https://aws.amazon.com/autoscaling/)
Expand All @@ -10,6 +18,20 @@ A RabbitMQ plugin that clusters nodes automatically using a number of peer disco
* [Consul](https://consul.io)
* [etcd](https://github.com/coreos/etcd)

If at least one peer node has been discovered, cluster formation proceeds as usual,
otherwise the node is considered to be the first one to come up and becomes the seed node.

To avoid a natural race condition around seed node "election" when a newly formed cluster
first boots, peer discovery backends use either randomized delays or a locking mechanism.

Some backends support node health checks. Nodes not reporting their status periodically
are considered to be in an errored state. If the user opts in, such nodes can be automatically
removed from the cluster. This is useful for deployments that use AWS autoscaling groups
or similar IaaS features, for example.

This plugin only covers cluster formation and does not change how RabbitMQ clusters
operate once formed.


**Note:** This plugin is not a replacement for first-hand knowledge of
how to manually create a RabbitMQ cluster. If you run into issues
Expand Down Expand Up @@ -76,38 +98,6 @@ Alternatively, there is a pre-built Docker Image available at on DockerHub as [a
As of version ``0.5`` the autocluster plugin does not have a default backend configured. See the [Project Wiki](https://github.com/rabbitmq/rabbitmq-autocluster/wiki) for configuration details.


What it Does
------------

This plugin provides a mechanism for peer node discovery in RabbitMQ
clusters. It also supports a few opinionated features around cluster
formation and "permanently unavailable" node detection.

Nodes using this plugin will discover its peers on boot and (optionally) register with
one of the supported backends:

* [AWS EC2 tags](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
* [AWS Autoscaling Groups](https://aws.amazon.com/autoscaling/)
* [Kubernetes](https://kubernetes.io/)
* DNS A records
* [Consul](https://consul.io)
* [etcd](https://github.com/coreos/etcd)

If at least one peer node has been discovered, cluster formation proceeds as usual,
otherwise the node is considered to be the first one to come up and becomes the seed node.

To avoid a natural race condition around seed node "election" when a newly formed cluster
first boots, peer discovery backends use either randomized delays or a locking mechanism.

Some backends support node health checks. Nodes not reporting their status periodically
are considered to be in an errored state. If the user opts in, such nodes can be automatically
removed from the cluster. This is useful for deployments that use AWS autoscaling groups
or similar IaaS features, for example.

This plugin only covers cluster formation and does not change how RabbitMQ clusters
operate once formed.


Configuration
-------------

Expand Down

0 comments on commit cdfd544

Please sign in to comment.