github.com/micro/go-plugins/codec/msgpackrpc

Community maintained plugins for go-micro


Keywords
go-micro, m3o, micro, micro-plugin
License
Apache-2.0
Install
go get github.com/micro/go-plugins/codec/msgpackrpc

Documentation

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
}