Documentation ¶
Overview ¶
Package micro is a pluggable 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 = "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. Wrappers are applied in reverse order so the last is executed first.
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 // 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 |
http
Package http provides a http based message broker
|
Package http provides a http based message broker |
memory
Package memory provides a memory broker
|
Package memory provides a memory broker |
consumer
Module
|
|
consumer/client
Module
|
|
consumer/client/mock
Module
|
|
consumer/client/rpc
Module
|
|
producer
Module
|
|
producer/registry/memory
Module
|
|
producer/server/debug
Module
|
|
producer/server/debug/proto
Module
|
|
cache
module
|
|
handler
Module
|
|
proto
Module
|
|
transport
Module
|
|
transport/http
Module
|
|
transport/memory
Module
|
|
Package client is an interface for an RPC client
|
Package client is an interface for an RPC client |
mock
Package mock provides a mock client for testing
|
Package mock provides a mock client for testing |
rpc
Package rpc provides an rpc client
|
Package rpc provides an rpc client |
codegen
Module
|
|
codegen/selector/dns
Module
|
|
dc_filter
Module
|
|
dc_filter/client/mock
Module
|
|
dc_selector
Module
|
|
dc_selector/codec/protorpc
Module
|
|
pub
Module
|
|
pub/registry/memory
Module
|
|
selector
Module
|
|
selector/codec/jsonrpc
Module
|
|
wrapper
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 |
bytes
Package bytes provides a bytes codec which does not encode or decode anything
|
Package bytes provides a bytes codec which does not encode or decode anything |
grpc
Package grpc provides a grpc codec
|
Package grpc provides a grpc codec |
json
Package json provides a json codec
|
Package json provides a json codec |
jsonrpc
Package jsonrpc provides a json-rpc 1.0 codec
|
Package jsonrpc provides a json-rpc 1.0 codec |
proto
Package proto provides a proto codec
|
Package proto provides a proto codec |
protorpc
Package proto is a generated protocol buffer package.
|
Package proto is a generated protocol buffer package. |
config
module
|
|
file
Module
|
|
grpc
Module
|
|
grpc/client
Module
|
|
grpc/srv
Module
|
|
modify
Module
|
|
modify/cmd
Module
|
|
yaml
Module
|
|
yaml/broker
Module
|
|
yaml/broker/http
Module
|
|
yaml/broker/memory
Module
|
|
yaml/client
Module
|
|
yaml/client/mock
Module
|
|
yaml/client/rpc
Module
|
|
yaml/cmd
Module
|
|
yaml/codec
Module
|
|
yaml/codec/bytes
Module
|
|
yaml/codec/grpc
Module
|
|
yaml/codec/json
Module
|
|
yaml/codec/jsonrpc
Module
|
|
yaml/codec/proto
Module
|
|
yaml/codec/protorpc
Module
|
|
yaml/errors
Module
|
|
yaml/metadata
Module
|
|
yaml/registry
Module
|
|
yaml/registry/consul
Module
|
|
yaml/registry/gossip
Module
|
|
yaml/registry/gossip/proto
Module
|
|
yaml/registry/mdns
Module
|
|
yaml/registry/memory
Module
|
|
yaml/selector
Module
|
|
yaml/selector/dns
Module
|
|
yaml/selector/registry
Module
|
|
yaml/selector/static
Module
|
|
yaml/server
Module
|
|
yaml/server/debug
Module
|
|
yaml/server/debug/proto
Module
|
|
yaml/server/mock
Module
|
|
yaml/server/rpc
Module
|
|
yaml/transport
Module
|
|
yaml/transport/http
Module
|
|
yaml/transport/memory
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. |
event
module
|
|
selector/dns
Module
|
|
srv
Module
|
|
srv/errors
Module
|
|
srv/proto
Module
|
|
srv/proto/codec/proto
Module
|
|
srv/proto/registry/mdns
Module
|
|
srv/selector/registry
Module
|
|
filter
module
|
|
version
Module
|
|
flags
module
|
|
function
module
|
|
proto
Module
|
|
proto/selector/registry
Module
|
|
gateway
module
|
|
codec/protorpc
Module
|
|
proto
Module
|
|
proto/codec/grpc
Module
|
|
proto/hello
Module
|
|
proto/hello/codec/bytes
Module
|
|
proto/hello/transport/memory
Module
|
|
proto/registry/mdns
Module
|
|
selector/static
Module
|
|
server/debug
Module
|
|
server/debug/proto
Module
|
|
getip
module
|
|
codec/grpc
Module
|
|
proto
Module
|
|
proto/registry
Module
|
|
proto/registry/consul
Module
|
|
proto/registry/gossip
Module
|
|
proto/registry/gossip/proto
Module
|
|
proto/registry/mdns
Module
|
|
proto/registry/memory
Module
|
|
proto/server/rpc
Module
|
|
graceful
module
|
|
server/mock
Module
|
|
greeter
module
|
|
cli
Module
|
|
cli/sidecar
Module
|
|
selector/dns
Module
|
|
srv
Module
|
|
srv/client
Module
|
|
srv/client/mock
Module
|
|
srv/client/rpc
Module
|
|
srv/proto
Module
|
|
srv/proto/hello
Module
|
|
heartbeat
module
|
|
helloworld
module
|
|
proto
Module
|
|
proto/errors
Module
|
|
http
module
|
|
broker
Module
|
|
broker/http
Module
|
|
broker/memory
Module
|
|
broker/memory/broker
Module
|
|
broker/memory/broker/http
Module
|
|
broker/memory/broker/memory
Module
|
|
broker/memory/client
Module
|
|
broker/memory/client/mock
Module
|
|
broker/memory/client/rpc
Module
|
|
broker/memory/cmd
Module
|
|
broker/memory/codec
Module
|
|
broker/memory/codec/bytes
Module
|
|
broker/memory/codec/grpc
Module
|
|
broker/memory/codec/json
Module
|
|
broker/memory/codec/jsonrpc
Module
|
|
broker/memory/codec/proto
Module
|
|
broker/memory/codec/protorpc
Module
|
|
broker/memory/errors
Module
|
|
broker/memory/metadata
Module
|
|
broker/memory/registry
Module
|
|
broker/memory/registry/mdns
Module
|
|
broker/memory/selector
Module
|
|
broker/memory/selector/dns
Module
|
|
broker/memory/server
Module
|
|
broker/memory/server/debug
Module
|
|
broker/memory/server/mock
Module
|
|
broker/memory/server/rpc
Module
|
|
broker/memory/transport
Module
|
|
broker/memory/transport/http
Module
|
|
cli
Module
|
|
cli/broker/http
Module
|
|
cli/client
Module
|
|
cli/client/codec
Module
|
|
cli/client/codec/bytes
Module
|
|
cli/client/codec/grpc
Module
|
|
cli/client/codec/json
Module
|
|
cli/client/codec/jsonrpc
Module
|
|
cli/client/codec/proto
Module
|
|
cli/client/codec/protorpc
Module
|
|
cli/client/errors
Module
|
|
cli/client/metadata
Module
|
|
cli/client/mock
Module
|
|
cli/client/mock/client
Module
|
|
cli/client/mock/client/mock
Module
|
|
cli/client/mock/client/rpc
Module
|
|
cli/client/mock/cmd
Module
|
|
cli/client/mock/codec
Module
|
|
cli/client/mock/codec/bytes
Module
|
|
cli/client/mock/codec/grpc
Module
|
|
cli/client/mock/codec/json
Module
|
|
cli/client/mock/codec/proto
Module
|
|
cli/client/mock/errors
Module
|
|
cli/client/mock/metadata
Module
|
|
cli/client/mock/registry
Module
|
|
cli/client/mock/selector
Module
|
|
cli/client/mock/selector/dns
Module
|
|
cli/client/mock/server
Module
|
|
cli/client/mock/server/debug
Module
|
|
cli/client/mock/server/mock
Module
|
|
cli/client/mock/server/rpc
Module
|
|
cli/client/mock/transport
Module
|
|
cli/client/registry
Module
|
|
cli/client/registry/consul
Module
|
|
cli/client/registry/gossip
Module
|
|
cli/client/registry/mdns
Module
|
|
cli/client/registry/memory
Module
|
|
cli/client/selector
Module
|
|
cli/client/selector/dns
Module
|
|
cli/client/selector/registry
Module
|
|
cli/client/selector/static
Module
|
|
cli/client/server
Module
|
|
cli/client/server/debug
Module
|
|
cli/client/server/mock
Module
|
|
cli/client/server/rpc
Module
|
|
cli/client/transport
Module
|
|
cli/client/transport/http
Module
|
|
cli/client/transport/memory
Module
|
|
cli/cmd
Module
|
|
cli/codec
Module
|
|
cli/codec/bytes
Module
|
|
cli/codec/json
Module
|
|
cli/errors
Module
|
|
cli/metadata
Module
|
|
cli/transport
Module
|
|
cli/transport/http
Module
|
|
cli/transport/memory
Module
|
|
client
Module
|
|
client/mock
Module
|
|
client/rpc
Module
|
|
cmd
Module
|
|
codec
Module
|
|
codec/bytes
Module
|
|
codec/grpc
Module
|
|
codec/json
Module
|
|
codec/jsonrpc
Module
|
|
codec/proto
Module
|
|
codec/protorpc
Module
|
|
errors
Module
|
|
metadata
Module
|
|
registry/consul
Module
|
|
registry/gossip
Module
|
|
registry/mdns
Module
|
|
rpccli
Module
|
|
rpccli/broker/http
Module
|
|
rpccli/broker/memory
Module
|
|
rpccli/client/rpc
Module
|
|
rpccli/codec
Module
|
|
rpccli/codec/bytes
Module
|
|
rpccli/codec/grpc
Module
|
|
rpccli/codec/jsonrpc
Module
|
|
rpccli/codec/proto
Module
|
|
rpccli/codec/protorpc
Module
|
|
rpccli/errors
Module
|
|
rpccli/metadata
Module
|
|
rpccli/transport/http
Module
|
|
selector
Module
|
|
selector/dns
Module
|
|
selector/registry
Module
|
|
selector/static
Module
|
|
server/mock
Module
|
|
srv
Module
|
|
srv/codec/bytes
Module
|
|
srv/metadata
Module
|
|
srv/selector/dns
Module
|
|
transport
Module
|
|
transport/http
Module
|
|
transport/memory
Module
|
|
Package metadata is a way of defining message headers
|
Package metadata is a way of defining message headers |
cli
Module
|
|
cli/codec/jsonrpc
Module
|
|
srv
Module
|
|
srv/registry/consul
Module
|
|
mocking
module
|
|
mock
Module
|
|
mock/broker/http
Module
|
|
mock/metadata
Module
|
|
noproto
module
|
|
broker
Module
|
|
broker/http
Module
|
|
broker/memory
Module
|
|
client
Module
|
|
client/mock
Module
|
|
client/rpc
Module
|
|
cmd
Module
|
|
codec
Module
|
|
codec/bytes
Module
|
|
codec/grpc
Module
|
|
codec/json
Module
|
|
codec/jsonrpc
Module
|
|
codec/proto
Module
|
|
codec/protorpc
Module
|
|
errors
Module
|
|
metadata
Module
|
|
registry
Module
|
|
registry/consul
Module
|
|
registry/gossip
Module
|
|
registry/gossip/proto
Module
|
|
registry/mdns
Module
|
|
registry/memory
Module
|
|
selector
Module
|
|
selector/dns
Module
|
|
selector/registry
Module
|
|
selector/static
Module
|
|
server
Module
|
|
server/debug
Module
|
|
server/debug/proto
Module
|
|
server/mock
Module
|
|
server/rpc
Module
|
|
transport
Module
|
|
transport/http
Module
|
|
transport/memory
Module
|
|
pubsub
module
|
|
cli
Module
|
|
selector
Module
|
|
selector/dns
Module
|
|
selector/registry
Module
|
|
selector/static
Module
|
|
srv
Module
|
|
srv/proto
Module
|
|
srv/proto/errors
Module
|
|
srv/registry/mdns
Module
|
|
redirect
module
|
|
Package mdns is a multicast dns registry Package registry is an interface for service discovery
|
Package mdns is a multicast dns registry Package registry is an interface for service discovery |
gossip
Package Gossip provides a gossip registry based on hashicorp/memberlist
|
Package Gossip provides a gossip registry based on hashicorp/memberlist |
gossip/proto
Package gossip is a generated protocol buffer package.
|
Package gossip is a generated protocol buffer package. |
mdns
Package mdns provides a multicast dns registry
|
Package mdns provides a multicast dns registry |
memory
Package memory provides an in-memory registry
|
Package memory provides an in-memory registry |
roundrobin
module
|
|
secure
module
|
|
cli
Module
|
|
cli/codec/jsonrpc
Module
|
|
cli/transport/http
Module
|
|
cli/transport/memory
Module
|
|
codec/bytes
Module
|
|
srv
Module
|
|
srv/errors
Module
|
|
srv/proto
Module
|
|
srv/proto/hello
Module
|
|
srv/proto/hello/selector/dns
Module
|
|
Package selector is a way to pick a list of service nodes
|
Package selector is a way to pick a list of service nodes |
dns
Package dns provides a dns SRV selector
|
Package dns provides a dns SRV selector |
registry
Package registry uses the go-micro registry for selection
|
Package registry uses the go-micro registry for selection |
static
Package static provides a static resolver which returns the name/ip passed in without any change
|
Package static provides a static resolver which returns the name/ip passed in without any change |
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. |
rpc
Package rpc provides an rpc server
|
Package rpc provides an rpc server |
codegen
Module
|
|
handler
Module
|
|
handler/server/debug/proto
Module
|
|
proto
Module
|
|
proto/example
Module
|
|
subscriber
Module
|
|
subscriber/codec/protorpc
Module
|
|
wrapper
Module
|
|
wrapper/selector
Module
|
|
wrapper/selector/dns
Module
|
|
wrapper/selector/registry
Module
|
|
wrapper/selector/static
Module
|
|
service
module
|
|
codec/json
Module
|
|
proto
Module
|
|
proto/codec/protorpc
Module
|
|
proto/transport/memory
Module
|
|
registry/consul
Module
|
|
server
Module
|
|
server/debug
Module
|
|
server/debug/proto
Module
|
|
server/mock
Module
|
|
server/rpc
Module
|
|
sharding
module
|
|
shutdown
module
|
|
broker
Module
|
|
broker/http
Module
|
|
broker/memory
Module
|
|
client
Module
|
|
client/mock
Module
|
|
client/rpc
Module
|
|
cmd
Module
|
|
codec
Module
|
|
codec/bytes
Module
|
|
codec/grpc
Module
|
|
codec/json
Module
|
|
codec/jsonrpc
Module
|
|
codec/proto
Module
|
|
codec/protorpc
Module
|
|
errors
Module
|
|
metadata
Module
|
|
registry
Module
|
|
registry/consul
Module
|
|
registry/gossip
Module
|
|
registry/gossip/proto
Module
|
|
registry/memory
Module
|
|
selector
Module
|
|
selector/dns
Module
|
|
selector/registry
Module
|
|
selector/static
Module
|
|
server
Module
|
|
server/debug
Module
|
|
server/debug/proto
Module
|
|
server/mock
Module
|
|
server/rpc
Module
|
|
transport
Module
|
|
transport/http
Module
|
|
transport/memory
Module
|
|
stream
module
|
|
grpc
Module
|
|
grpc/client
Module
|
|
grpc/proto
Module
|
|
grpc/proto/client/rpc
Module
|
|
grpc/registry/gossip/proto
Module
|
|
grpc/registry/memory
Module
|
|
grpc/server
Module
|
|
rpc
Module
|
|
rpc/client
Module
|
|
rpc/server
Module
|
|
rpc/server/proto
Module
|
|
Package transport is an interface for synchronous communication
|
Package transport is an interface for synchronous communication |
http
Package http returns a http2 transport using net/http
|
Package http returns a http2 transport using net/http |
memory
Package memory is an in-memory transport
|
Package memory is an in-memory transport |
waitgroup
module
|
|
client
Module
|
|
client/mock
Module
|
|
cmd
Module
|
|
codec
Module
|
|
codec/bytes
Module
|
|
codec/grpc
Module
|
|
codec/json
Module
|
|
codec/jsonrpc
Module
|
|
codec/proto
Module
|
|
codec/protorpc
Module
|
|
errors
Module
|
|
metadata
Module
|
|
registry
Module
|
|
registry/consul
Module
|
|
registry/gossip
Module
|
|
registry/mdns
Module
|
|
registry/memory
Module
|
|
selector
Module
|
|
selector/dns
Module
|
|
selector/registry
Module
|
|
selector/static
Module
|
|
server
Module
|
|
server/debug
Module
|
|
server/debug/proto
Module
|
|
server/mock
Module
|
|
server/rpc
Module
|
|
transport
Module
|
|
transport/http
Module
|
|
transport/memory
Module
|
|
wrapper
module
|
|
cli
Module
|
|
cli/cmd
Module
|