vulcand

command module
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

README

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 deployments, realtime metrics and resilience.

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
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 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")'

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package model defines interfaces and structures controlling the proxy configuration.
Package model defines interfaces and structures controlling the proxy configuration.
etcdng/v2
Package v2 contains the implementation of the v2 etcd-backed engine, where all Vulcand properties are implemented as directories or keys.
Package v2 contains the implementation of the v2 etcd-backed engine, where all Vulcand properties are implemented as directories or keys.
etcdng/v3
Package v3 contains the implementation of the etcd-backed engine, where all Vulcand properties are implemented as directories or keys.
Package v3 contains the implementation of the etcd-backed engine, where all Vulcand properties are implemented as directories or keys.
memng
package memng provides in memory engine implementation, mostly used for test purposes
package memng provides in memory engine implementation, mostly used for test purposes
Package manners provides a wrapper for a standard net/http server that ensures all active HTTP client have completed their current request before the server shuts down.
Package manners provides a wrapper for a standard net/http server that ensures all active HTTP client have completed their current request before the server shuts down.
ratelimit
Package ratelimit Tokenbucket based request rate limiter
Package ratelimit Tokenbucket based request rate limiter
registry
This file will be generated to include all customer specific middlewares
This file will be generated to include all customer specific middlewares
mux
This is a home of system tests of vulcan daemon.
This is a home of system tests of vulcan daemon.
utils

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL