GithubHelp home page GithubHelp logo

duguyifang / go-plugins Goto Github PK

View Code? Open in Web Editor NEW

This project forked from st3v/go-plugins

0.0 0.0 0.0 2.31 MB

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

License: Apache License 2.0

Shell 0.04% Go 95.27% Thrift 4.69%

go-plugins's Introduction

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
}

go-plugins's People

Contributors

heavyhorst avatar nickjackson avatar st3v avatar bruth avatar 0x5143 avatar srounce avatar phifty avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.