elasticsearch/elasticsearch — pull request #2454 by jprante (2012-11-30 17:07:02+00:00)
Title: Multi-cluster discovery

This tiny patch allows a cluster name of '*' (asterisk) in a multicast request to be accepted by all nodes.

The asterisk pseudo cluster name is intended for future discovery tools that want to discover all active clusters without knowing cluster names beforehand.

Additionally, the multicast response is extended by some basic node info (client mode, data mode, node name, node ID), so future discovery tools can take immediate actions depending on the type of the responding node.

Useful examples for multi-cluster discovery are

- data center wide multi-cluster multi-tenant ES node monitoring tools ("ES cluster radar")

- zero-conf clients: by implementing multicast ping requesters in Perl/Ruby/Python/PHP, the current HTTP REST clients could be enhanced - no more bothering with cluster names, no static IP lists, no switching to unicast discovery

Nodes should respond with a list of transport / HTTP REST / other transport plugin addresses to the requester (optional addresses by using the node attributes). If there was only a single cluster, Perl/Ruby/Python/PHP clients could connect instantly to it.