vulcand

Programmatic load balancer backed by Etcd

  • Owner: vulcand/vulcand
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Vulcand

Vulcand is a programmatic extendable proxy for microservices and API management.
It is inspired by 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 deploys, realtime metrics and resiliency.

Vulcan diagram

Project info
------------, documentation, http://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, build status, Build Status, Opentracing Support

Vulcand has support for open tracing via the Jaeger client
libraries
. 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
for all available configuration environment variables.

When enabled vulcand will create 2 spans, one span called vulcand which
covers the entire downstream request. The other 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 comma's.

Example

$ vulcand --aliases 'Host("localhost")=Host("192.168.1.1")'

Main metrics

Overview
Name With Ownervulcand/vulcand
Primary LanguageGo
Program languageMakefile (Language Count: 4)
Platform
License:Apache License 2.0
所有者活动
Created At2014-03-27 05:42:43
Pushed At2024-07-27 08:36:18
Last Commit At2023-07-10 09:40:38
Release Count13
Last Release Namev0.9.2 (Posted on )
First Release Namev0.8.0-alpha (Posted on )
用户参与
Stargazers Count3.1k
Watchers Count81
Fork Count222
Commits Count723
Has Issues Enabled
Issues Count187
Issue Open Count67
Pull Requests Count162
Pull Requests Open Count2
Pull Requests Close Count30
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private