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 |
---|---|
Package broker is an interface used for asynchronous messaging
|
Package broker is an interface used for asynchronous messaging |
Package client is an interface for an RPC client
|
Package client is an interface for an RPC client |
Package cmd is an interface for parsing the command line
|
Package cmd is an interface for parsing the command line |
protoc-gen-micro
Module
|
|
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. |
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. |
examples
module
|
|
Package metadata is a way of defining message headers
|
Package metadata is a way of defining message headers |
plugins
|
|
acme/certmagic
Module
|
|
agent/command/animate
Module
|
|
agent/command/geocode
Module
|
|
agent/command/whereareyou
Module
|
|
auth/jwt
Module
|
|
broker/gocloud
Module
|
|
broker/googlepubsub
Module
|
|
broker/grpc
Module
|
|
broker/http
Module
|
|
broker/kafka
Module
|
|
broker/memory
Module
|
|
broker/mqtt
Module
|
|
broker/nats
Module
|
|
broker/nsq
Module
|
|
broker/proxy
Module
|
|
broker/rabbitmq
Module
|
|
broker/redis
Module
|
|
broker/segmentio
Module
|
|
broker/service
Module
|
|
broker/snssqs
Module
|
|
broker/sqs
Module
|
|
broker/stan
Module
|
|
broker/stomp
Module
|
|
client/grpc
Module
|
|
client/http
Module
|
|
client/mock
Module
|
|
codec/bsonrpc
Module
|
|
codec/json-iterator
Module
|
|
codec/jsonrpc2
Module
|
|
codec/msgpackrpc
Module
|
|
codec/segmentio
Module
|
|
config/encoder/cue
Module
|
|
config/encoder/hcl
Module
|
|
config/encoder/toml
Module
|
|
config/encoder/xml
Module
|
|
config/encoder/yaml
Module
|
|
config/source/configmap
Module
|
|
config/source/consul
Module
|
|
config/source/etcd
Module
|
|
config/source/grpc
Module
|
|
config/source/mucp
Module
|
|
config/source/pkger
Module
|
|
config/source/runtimevar
Module
|
|
config/source/url
Module
|
|
config/source/vault
Module
|
|
logger/apex
Module
|
|
logger/logrus
Module
|
|
logger/zap
Module
|
|
logger/zerolog
Module
|
|
network/proxy/grpc
Module
|
|
proxy/http
Module
|
|
registry/cache
Module
|
|
registry/consul
Module
|
|
registry/etcd
Module
|
|
registry/eureka
Module
|
|
registry/gossip
Module
|
|
registry/kubernetes
Module
|
|
registry/mdns
Module
|
|
registry/multi
Module
|
|
registry/nats
Module
|
|
registry/proxy
Module
|
|
registry/service
Module
|
|
registry/zookeeper
Module
|
|
selector/dns
Module
|
|
selector/label
Module
|
|
selector/registry
Module
|
|
selector/shard
Module
|
|
selector/static
Module
|
|
server/grpc
Module
|
|
server/http
Module
|
|
server/mucp
Module
|
|
store/cockroach
Module
|
|
store/consul
Module
|
|
store/file
Module
|
|
store/memcached
Module
|
|
store/memory
Module
|
|
store/mysql
Module
|
|
store/redis
Module
|
|
sync/etcd
Module
|
|
sync/memory
Module
|
|
transport/grpc
Module
|
|
transport/http
Module
|
|
transport/memory
Module
|
|
transport/nats
Module
|
|
transport/rabbitmq
Module
|
|
transport/tcp
Module
|
|
transport/utp
Module
|
|
wrapper/breaker/gobreaker
Module
|
|
wrapper/breaker/hystrix
Module
|
|
wrapper/endpoint
Module
|
|
wrapper/ratelimiter/uber
Module
|
|
wrapper/select/roundrobin
Module
|
|
wrapper/select/shard
Module
|
|
wrapper/select/version
Module
|
|
wrapper/service
Module
|
|
wrapper/trace/awsxray
Module
|
|
wrapper/trace/datadog
Module
|
|
wrapper/trace/opencensus
Module
|
|
wrapper/trace/opentracing
Module
|
|
wrapper/validator
Module
|
|
Package registry is an interface for service discovery
|
Package registry is an interface for service discovery |
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. |
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. |
Package is an interface for synchronous communication
|
Package is an interface for synchronous communication |