Lighthouse is a service node discovery system written in python, built with resilience, flexibility and ease-of-use in mind and inspired by Airbnb’s SmartStack solution. Out of the box it supports discovery via Zookeeper with cluster load balancing handled by an automatically configured HAProxy.
To jump right in see the Getting Started page, or if you’d like to see it in action check out the Examples page.
A lighthouse setup consists of three parts running locally on each node: a load
balancer, the lighthouse-writer
script and (usually) the lighthouse-reporter
script.
In a Lighthouse setup, no node’s application code is aware of the existence of other nodes, they talk to a local port handled by an instance of the load balancer which in turn routes traffic among the various known other nodes.
This local load balancer is automatically updated when nodes come and go
via the lighthouse-writer
script, which talks to the discovery method (e.g.
Zookeeper) to keep track of which nodes on which clusters are up.
The lighthouse-reporter
script likewise talks to the discovery method, it is
responsible for running health checks on any services on the local node and
reports to the discovery method that the healthy services are up and the
unhealthy ones are down.
The code is hosted on GitHub
To file a bug or possible enhancement see the Issue Tracker, also found on GitHub.