Go Plugins
A repository for go-micro and go-platform plugins.
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 |
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
}