Service discovery tool focused on ease-of-use and resiliency


License
Apache-2.0
Install
pip install lighthouse==1.0.0

Documentation

Lighthouse Service Discovery Tool

Python Package Version Documentation Status Build Status Code Health Codecov.io

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 dive right in, checkout the Getting Started page in the docs.

Overview

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.

Diagram of a node

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

Documentation

More detailed documentation can be found on Read the Docs.

Development

The code is hosted on GitHub

To file a bug or possible enhancement see the Issue Tracker, also found on GitHub.

License

(c) 2014-2016 William Glass

Lighthouse is licensed under the terms of the Apache license (2.0). See the LICENSE file for more details.