Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vulcand/vulcand
Programmatic load balancer backed by Etcd
https://github.com/vulcand/vulcand
Last synced: 25 days ago
JSON representation
Programmatic load balancer backed by Etcd
- Host: GitHub
- URL: https://github.com/vulcand/vulcand
- Owner: vulcand
- License: apache-2.0
- Created: 2014-03-27T05:42:43.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-07-27T08:36:18.000Z (3 months ago)
- Last Synced: 2024-10-01T16:41:41.091Z (about 1 month ago)
- Language: Go
- Homepage: http://vulcand.readthedocs.io/
- Size: 16.9 MB
- Stars: 3,080
- Watchers: 83
- Forks: 225
- Open Issues: 70
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Roadmap: ROADMAP.md
Awesome Lists containing this project
- awesome-repositories - vulcand/vulcand - Programmatic load balancer backed by Etcd (Go)
- awesome-starred - vulcand/vulcand - Programmatic load balancer backed by Etcd (others)
README
Vulcand
=======Vulcand is a programmatic extendable proxy for microservices and API management.
It is inspired by [Hystrix](https://github.com/Netflix/Hystrix) and powers Mailgun microservices infrastructure.Focus and priorities
--------------------
Vulcand is focused on microservices and API use-cases.Features
--------* Uses etcd as a configuration backend.
* API and command line tool.
* Pluggable middlewares.
* Support for canary deployments, realtime metrics and resilience.![Vulcan diagram](https://coreos.com/assets/images/media/vulcan-1-upstream.png "Vulcan diagram")
Project info
------------| documentation | https://vulcand.github.io/ |
| :------------- |:-----------------------------------------------------------------|
| status | Used in production@Mailgun on moderate workloads. Under active development. |
| discussions | https://groups.google.com/d/forum/vulcan-proxy |
| roadmap | [roadmap.md](ROADMAP.md) |
| build status | [![Build Status](https://travis-ci.org/vulcand/vulcand.svg?branch=master)](https://travis-ci.org/vulcand/vulcand) |Opentracing Support
------------
Vulcand has support for open tracing via the [Jaeger client
libraries](https://github.com/jaegertracing/jaeger-client-go). Users who wish
to use tracing support should use the `--enableJaegerTracing` flag and must
either run the Jaeger client listening on `localhost:6831/udp` or set the
environment variables `JAEGER_AGENT_HOST` and `JAEGER_AGENT_POST`. (See the
[Jaeger client libraries](https://github.com/jaegertracing/jaeger-client-go)
for all available configuration environment variables.)When enabled vulcand will create 2 spans: one span called `vulcand` which
covers the entire downstream request and another span called `middleware` which
only spans the processing of the middleware before the request is routed
downstream.Aliased Expressions
------------
When running vulcand in a kubernetes DaemonSet vulcand needs to know requests
from the local node can match `Host("localhost")` rules. This `--aliases` flag
allows an author of a vulcand DaemonSet to tell vulcand the name of the node it's
currently running on, such that vulcand correctly routes requests for
`Host("localhost")`. The `--aliases` flag allows the user to pass in multiple
aliases separated by commas.Example
```
$ vulcand --aliases 'Host("localhost")=Host("192.168.1.1")'
```