go-plugins

module
v0.0.0-...-c02844b Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2016 License: Apache-2.0

README

Go Plugins License GoDoc Travis CI Go Report Card

A repository for go-micro and go-os plugins. The go-micro framework is a pluggable architecture, here we provide additional plugins to swap out the defaults.

Check out the Micro on NATS blog post to learn more about plugins https://blog.micro.mu/2016/04/11/micro-on-nats.html.

Contributions welcome! Join the community to discuss further.

What's here?

Directory Description
Bot Bot inputs and commands
Broker Asynchronous Pub/Sub; NATS, NSQ, RabbitMQ, Kafka
Client RPC Client; gRPC
Codec RPC Encoding; BSON, Mercury
KV Key-Value; Memcached, Redis
Metrics Instrumentation; Statsd, Telegraf, Prometheus
Micro Micro Toolkit Plugins
Registry Service Discovery; Etcd, Gossip, NATS
Selector Node Selection; Label, Mercury
Server Alternative servers; HTTP
Sync Locking/Leadership election; Consul, Etcd
Trace Distributed tracing; Zipkin
Transport Synchronous Request/Response; NATS, RabbitMQ
Wrappers Client/Server middleware; Circuit Breakers, Rate Limit

Community Contributions

Feature Description Author
Registry/Kubernetes Service discovery via the Kubernetes API @nickjackson
Registry/Zookeeper Service discovery using Zookeeper @HeavyHorst

Usage

Plugins can be added to go-micro in the following ways. By doing so they'll be available to set via command line args or environment variables.

import (
	"github.com/micro/go-micro/cmd"
	_ "github.com/micro/go-plugins/broker/rabbitmq"
	_ "github.com/micro/go-plugins/registry/kubernetes"
	_ "github.com/micro/go-plugins/transport/nats"
)

func main() {
	cmd.Init()
}

OR use them directly

import (
	"github.com/micro/go-plugins/registry/kubernetes"
)

func main() {
	r := kubernetes.NewRegistry([]string{}) // default to using env vars for master API
}

Directories

Path Synopsis
bot
broker
nsq
client
codec
examples
kv
metrics
micro
router
Package router is a micro plugin for defining HTTP routes
Package router is a micro plugin for defining HTTP routes
whitelist
Package whitelist is a micro plugin for whitelisting service requests
Package whitelist is a micro plugin for whitelisting service requests
registry
eureka/mock
This file was generated by counterfeiter
This file was generated by counterfeiter
selector
blacklist
Package blacklist is a selector which includes blacklisting of nodes when they fail
Package blacklist is a selector which includes blacklisting of nodes when they fail
cache
Package cache is a caching selector.
Package cache is a caching selector.
label
Package label is a priority label based selector.
Package label is a priority label based selector.
named
Package named is a selector which always returns the name selected.
Package named is a selector which always returns the name selected.
server
http
Package http implements a go-micro.Server
Package http implements a go-micro.Server
sync
trace
transport
wrapper

Jump to

Keyboard shortcuts

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