Skip to content

Plugins for go-micro {registry, broker, codec, transport, ...}

License

Notifications You must be signed in to change notification settings

nasermirzaei89/go-plugins

 
 

Repository files navigation

Go Plugins License GoDoc Travis CI Go Report Card

A repository for go-micro and go-platform 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
Broker Asynchronous Pub/Sub; NATS, NSQ, RabbitMQ, Kafka
Codec RPC Encoding; BSON, Mercury
Registry Service Discovery; Etcd, Gossip, NATS
Selector Node Selection; Label, Mercury
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
}

About

Plugins for go-micro {registry, broker, codec, transport, ...}

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%