Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package micro is a pluggable RPC framework for microservices
Index ¶
- Variables
 - func NewContext(ctx context.Context, s Service) context.Context
 - func RegisterHandler(s server.Server, h interface{}, opts ...server.HandlerOption) error
 - func RegisterSubscriber(topic string, s server.Server, h interface{}, opts ...server.SubscriberOption) error
 - type Function
 - type Option
 - func Action(a func(*cli.Context)) Option
 - func AfterStart(fn func() error) Option
 - func AfterStop(fn func() error) Option
 - func BeforeStart(fn func() error) Option
 - func BeforeStop(fn func() error) Option
 - func Broker(b broker.Broker) Option
 - func Client(c client.Client) Option
 - func Cmd(c cmd.Cmd) Option
 - func Context(ctx context.Context) Option
 - func Flags(flags ...cli.Flag) Option
 - func Metadata(md map[string]string) Option
 - func Name(n string) Option
 - func RegisterInterval(t time.Duration) Option
 - func RegisterTTL(t time.Duration) Option
 - func Registry(r registry.Registry) Option
 - func Selector(s selector.Selector) Option
 - func Server(s server.Server) Option
 - func Transport(t transport.Transport) Option
 - func Version(v string) Option
 - func WrapCall(w ...client.CallWrapper) Option
 - func WrapClient(w ...client.Wrapper) Option
 - func WrapHandler(w ...server.HandlerWrapper) Option
 - func WrapSubscriber(w ...server.SubscriberWrapper) Option
 
- type Options
 - type Publisher
 - type Service
 
Constants ¶
This section is empty.
Variables ¶
var (
	HeaderPrefix = "X-Micro-"
)
    Functions ¶
func NewContext ¶
NewContext returns a new Context with the Service embedded within it.
func RegisterHandler ¶
func RegisterHandler(s server.Server, h interface{}, opts ...server.HandlerOption) error
RegisterHandler is syntactic sugar for registering a handler
func RegisterSubscriber ¶
func RegisterSubscriber(topic string, s server.Server, h interface{}, opts ...server.SubscriberOption) error
RegisterSubscriber is syntactic sugar for registering a subscriber
Types ¶
type Function ¶
type Function interface {
	// Inherits Service interface
	Service
	// Done signals to complete execution
	Done() error
	// Handle registers an RPC handler
	Handle(v interface{}) error
	// Subscribe registers a subscriber
	Subscribe(topic string, v interface{}) error
}
    Function is a one time executing Service
func NewFunction ¶
NewFunction returns a new Function for a one time executing Service
type Option ¶
type Option func(*Options)
func AfterStart ¶
func BeforeStart ¶
func BeforeStop ¶
func Context ¶
Context specifies a context for the service. Can be used to signal shutdown of the service. Can be used for extra option values.
func RegisterInterval ¶
RegisterInterval specifies the interval on which to re-register
func RegisterTTL ¶
RegisterTTL specifies the TTL to use when registering the service
func WrapCall ¶
func WrapCall(w ...client.CallWrapper) Option
WrapCall is a convenience method for wrapping a Client CallFunc
func WrapClient ¶
WrapClient is a convenience method for wrapping a Client with some middleware component. A list of wrappers can be provided.
func WrapHandler ¶
func WrapHandler(w ...server.HandlerWrapper) Option
WrapHandler adds a handler Wrapper to a list of options passed into the server
func WrapSubscriber ¶
func WrapSubscriber(w ...server.SubscriberWrapper) Option
WrapSubscriber adds a subscriber Wrapper to a list of options passed into the server
type Options ¶
type Options struct {
	Broker    broker.Broker
	Cmd       cmd.Cmd
	Client    client.Client
	Server    server.Server
	Registry  registry.Registry
	Transport transport.Transport
	// Register loop interval
	RegisterInterval time.Duration
	// Before and After funcs
	BeforeStart []func() error
	BeforeStop  []func() error
	AfterStart  []func() error
	AfterStop   []func() error
	// Other options for implementations of the interface
	// can be stored in a context
	Context context.Context
}
    type Publisher ¶
type Publisher interface {
	Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error
}
    Publisher is syntactic sugar for publishing
type Service ¶
type Service interface {
	Init(...Option)
	Options() Options
	Client() client.Client
	Server() server.Server
	Run() error
	String() string
}
    Service is an interface that wraps the lower level libraries within go-micro. Its a convenience method for building and initialising services.
func FromContext ¶
FromContext retrieves a Service from the Context.
func NewService ¶
NewService creates and returns a new Service based on the packages within.
      
      Source Files
      ¶
    
  
      
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| 
       auth
            module
           
          
         | 
      |
| 
         
          
            jwt
            module
            
          
          
         
       | 
      |
| 
         
          
            jwt/v
            module
            
          
          
         
       | 
      |
| 
         
          
            jwt/v4/token
            module
            
          
          
         
       | 
      |
| 
       borker
            module
           
          
         | 
      |
| 
         
          
            rabbitmq
            module
            
          
          
         
       | 
      |
| 
       Package broker is an interface used for asynchronous messaging 
         | 
      Package broker is an interface used for asynchronous messaging | 
| 
         
          
            grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            kafka
            module
            
          
          
         
       | 
      |
| 
         
          
            nats
            module
            
          
          
         
       | 
      |
| 
         
          
            rabbitmq
            module
            
          
          
         
       | 
      |
| 
         
          
            redis
            module
            
          
          
         
       | 
      |
| 
         
          
            sqs
            module
            
          
          
         
       | 
      |
| 
       Package client is an interface for an RPC client 
         | 
      Package client is an interface for an RPC client | 
| 
         
          
            grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            grpc/mock
            module
            
          
          
         
       | 
      |
| 
         
          
            http
            module
            
          
          
         
       | 
      |
| 
       Package cmd is an interface for parsing the command line 
         | 
      Package cmd is an interface for parsing the command line | 
| 
       Package codec is an interface for encoding messages 
         | 
      Package codec is an interface for encoding messages | 
| 
         
          
            protorpc
            
            
          
           
      Package proto is a generated protocol buffer package. 
         | 
      Package proto is a generated protocol buffer package. | 
| 
         
          
            jsonrpc2
            module
            
          
          
         
       | 
      |
| 
       config
            module
           
          
         | 
      |
| 
         
          
            encoder
            module
            
          
          
         
       | 
      |
| 
         
          
            encoder/toml
            module
            
          
          
         
       | 
      |
| 
         
          
            encoder/yaml
            module
            
          
          
         
       | 
      |
| 
         
          
            source
            module
            
          
          
         
       | 
      |
| 
         
          
            source/consul
            module
            
          
          
         
       | 
      |
| 
         
          
            source/etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            source/grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            source/grpc/proto
            module
            
          
          
         
       | 
      |
| 
         
          
            source/grpc/v4/proto
            module
            
          
          
         
       | 
      |
| 
         
          
            source/nacos
            module
            
          
          
         
       | 
      |
| 
       Package errors provides a way to return detailed information for an RPC request error. 
         | 
      Package errors provides a way to return detailed information for an RPC request error. | 
| 
       etcd
            module
           
          
         | 
      |
| 
       logger
            module
           
          
         | 
      |
| 
         
          
            logrus
            module
            
          
          
         
       | 
      |
| 
         
          
            zap
            module
            
          
          
         
       | 
      |
| 
         
          
            zerolog
            module
            
          
          
         
       | 
      |
| 
       memory
            module
           
          
         | 
      |
| 
       Package metadata is a way of defining message headers 
         | 
      Package metadata is a way of defining message headers | 
| 
       registery
            module
           
          
         | 
      |
| 
         
          
            etcd
            module
            
          
          
         
       | 
      |
| 
       Package registry is an interface for service discovery 
         | 
      Package registry is an interface for service discovery | 
| 
         
          
            etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            etcdv3
            module
            
          
          
         
       | 
      |
| 
         
          
            kubernetes
            module
            
          
          
         
       | 
      |
| 
         
          
            memory
            module
            
          
          
         
       | 
      |
| 
         
          
            nacos
            module
            
          
          
         
       | 
      |
| 
         
          
            nats
            module
            
          
          
         
       | 
      |
| 
         
          
            zookeeper
            module
            
          
          
         
       | 
      |
| 
       Package selector is a way to load balance service nodes 
         | 
      Package selector is a way to load balance service nodes | 
| 
         
          
            cache
            
            
          
           
      Package cache is a caching selector. 
         | 
      Package cache is a caching selector. | 
| 
         
          
            registry
            module
            
          
          
         
       | 
      |
| 
       Package server is an interface for a micro server 
         | 
      Package server is an interface for a micro server | 
| 
         
          
            debug/proto
            
            
          
           
      Package debug is a generated protocol buffer package. 
         | 
      Package debug is a generated protocol buffer package. | 
| 
         
          
            grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            grpc/errors
            module
            
          
          
         
       | 
      |
| 
         
          
            http
            module
            
          
          
         
       | 
      |
| 
       store
            module
           
          
         | 
      |
| 
         
          
            redis
            module
            
          
          
         
       | 
      |
| 
       sync
            module
           
          
         | 
      |
| 
         
          
            etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            memory
            module
            
          
          
         
       | 
      |
| 
       Package is an interface for synchronous communication 
         | 
      Package is an interface for synchronous communication | 
| 
         
          
            grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            nats
            module
            
          
          
         
       | 
      |
| 
         
          
            tcp
            module
            
          
          
         
       | 
      |
| 
       tree
            module
           
          
         | 
      |
| 
         
          
            main
            module
            
          
          
         
       | 
      |
| 
         
          
            main/v5/registry
            module
            
          
          
         
       | 
      |
| 
         
          
            main/v5/registry/consul
            module
            
          
          
         
       | 
      |
| 
       v4
        | 
      |
| 
         
          
            broker
            module
            
          
          
         
       | 
      |
| 
         
          
            broker/kafka
            module
            
          
          
         
       | 
      |
| 
         
          
            broker/nats
            module
            
          
          
         
       | 
      |
| 
         
          
            broker/rabbitmq
            module
            
          
          
         
       | 
      |
| 
         
          
            broker/redis
            module
            
          
          
         
       | 
      |
| 
         
          
            cache
            module
            
          
          
         
       | 
      |
| 
         
          
            cache/redis
            module
            
          
          
         
       | 
      |
| 
         
          
            client
            module
            
          
          
         
       | 
      |
| 
         
          
            client/grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            config
            module
            
          
          
         
       | 
      |
| 
         
          
            config/consul
            module
            
          
          
         
       | 
      |
| 
         
          
            config/encoder
            module
            
          
          
         
       | 
      |
| 
         
          
            config/encoder/yaml
            module
            
          
          
         
       | 
      |
| 
         
          
            config/resource
            module
            
          
          
         
       | 
      |
| 
         
          
            config/resource/consul
            module
            
          
          
         
       | 
      |
| 
         
          
            config/source
            module
            
          
          
         
       | 
      |
| 
         
          
            config/source/configmap
            module
            
          
          
         
       | 
      |
| 
         
          
            config/source/consul
            module
            
          
          
         
       | 
      |
| 
         
          
            config/source/etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            config/source/yaml
            module
            
          
          
         
       | 
      |
| 
         
          
            etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            logger
            module
            
          
          
         
       | 
      |
| 
         
          
            logger/logrus
            module
            
          
          
         
       | 
      |
| 
         
          
            logger/zap
            module
            
          
          
         
       | 
      |
| 
         
          
            registry
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/consul
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/ectd
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/kubernetes
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/nats
            module
            
          
          
         
       | 
      |
| 
         
          
            selector
            module
            
          
          
         
       | 
      |
| 
         
          
            selector/static
            module
            
          
          
         
       | 
      |
| 
         
          
            server
            module
            
          
          
         
       | 
      |
| 
         
          
            server/grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            server/http
            module
            
          
          
         
       | 
      |
| 
         
          
            sync
            module
            
          
          
         
       | 
      |
| 
         
          
            sync/etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            transport
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/nats
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/tcp
            module
            
          
          
         
       | 
      |
| 
         
          
            wrapper
            module
            
          
          
         
       | 
      |
| 
         
          
            wrapper/monitoring
            module
            
          
          
         
       | 
      |
| 
         
          
            wrapper/trace
            module
            
          
          
         
       | 
      |
| 
         
          
            wrapper/trace/opentracing
            module
            
          
          
         
       | 
      |
| 
       v5
        | 
      |
| 
         
          
            broker
            module
            
          
          
         
       | 
      |
| 
         
          
            broker/nats
            module
            
          
          
         
       | 
      |
| 
         
          
            broker/rabbitmq
            module
            
          
          
         
       | 
      |
| 
         
          
            client
            module
            
          
          
         
       | 
      |
| 
         
          
            client/grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            config
            module
            
          
          
         
       | 
      |
| 
         
          
            config/encoder
            module
            
          
          
         
       | 
      |
| 
         
          
            config/encoder/yaml
            module
            
          
          
         
       | 
      |
| 
         
          
            logger
            module
            
          
          
         
       | 
      |
| 
         
          
            logger/zap
            module
            
          
          
         
       | 
      |
| 
         
          
            registry
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/consul
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/etcd
            module
            
          
          
         
       | 
      |
| 
         
          
            registry/nacos
            module
            
          
          
         
       | 
      |
| 
         
          
            server
            module
            
          
          
         
       | 
      |
| 
         
          
            server/grpc
            module
            
          
          
         
       | 
      |
| 
         
          
            server/http
            module
            
          
          
         
       | 
      |
| 
         
          
            transport
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/broker
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/broker/codec
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/broker/codec/noop
            module
            
          
          
         
       | 
      |
| 
         
          
            transport/grpc
            module
            
          
          
         
       | 
      |
| 
       wrapper
            module
           
          
         | 
      |
| 
         
          
            breaker
            module
            
          
          
         
       | 
      |
| 
         
          
            breaker/gobreaker
            module
            
          
          
         
       | 
      |
| 
         
          
            breaker/hystrix
            module
            
          
          
         
       | 
      |
| 
         
          
            hystrix
            module
            
          
          
         
       | 
      |
| 
         
          
            monitoring
            module
            
          
          
         
       | 
      |
| 
         
          
            monitoring/prometheus
            module
            
          
          
         
       | 
      |
| 
         
          
            monitoring/victoriametrics
            module
            
          
          
         
       | 
      |
| 
         
          
            ratelimiter
            module
            
          
          
         
       | 
      |
| 
         
          
            ratelimiter/ratelimit
            module
            
          
          
         
       | 
      |
| 
         
          
            ratelimiter/uber
            module
            
          
          
         
       | 
      |
| 
         
          
            select
            module
            
          
          
         
       | 
      |
| 
         
          
            select/roundrobin
            module
            
          
          
         
       | 
      |
| 
         
          
            select/shard
            module
            
          
          
         
       | 
      |
| 
         
          
            trace
            module
            
          
          
         
       | 
      |
| 
         
          
            trace/opencensus
            module
            
          
          
         
       | 
      |
| 
         
          
            trace/opentracing
            module
            
          
          
         
       | 
      |
| 
       wrappers
            module
           
          
         | 
      |
| 
         
          
            trace
            module
            
          
          
         
       | 
      |
| 
         
          
            trace/opentracing
            module
            
          
          
         
       | 
      
