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.
Directories
¶
| Path | Synopsis |
|---|---|
|
acme
module
|
|
|
certmagic
module
|
|
|
transport/memory
module
|
|
|
auth
module
|
|
|
jwt
module
|
|
|
jwt/selector/static
module
|
|
|
jwt/token
module
|
|
|
server/mock
module
|
|
|
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 |
|
gocloud
module
|
|
|
googlepubsub
module
|
|
|
grpc
module
|
|
|
grpc/proto
module
|
|
|
grpc/proto/registry/memory
module
|
|
|
kafka
module
|
|
|
mqtt
module
|
|
|
nats
module
|
|
|
nats/registry/consul
module
|
|
|
nats/server
module
|
|
|
nats/server/debug
module
|
|
|
nats/server/debug/proto
module
|
|
|
nats/server/mock
module
|
|
|
nats/server/rpc
module
|
|
|
nsq
module
|
|
|
nsq/registry/gossip/proto
module
|
|
|
proxy
module
|
|
|
proxy/transport/http
module
|
|
|
rabbitmq
module
|
|
|
rabbitmq/codec/json
module
|
|
|
redis
module
|
|
|
redis/broker/memory
module
|
|
|
segmentio
module
|
|
|
snssqs
module
|
|
|
sqs
module
|
|
|
sqs/broker
module
|
|
|
sqs/broker/http
module
|
|
|
sqs/broker/memory
module
|
|
|
sqs/client
module
|
|
|
sqs/client/mock
module
|
|
|
sqs/client/rpc
module
|
|
|
sqs/cmd
module
|
|
|
sqs/codec
module
|
|
|
sqs/codec/bytes
module
|
|
|
sqs/codec/grpc
module
|
|
|
sqs/codec/json
module
|
|
|
sqs/codec/jsonrpc
module
|
|
|
sqs/codec/proto
module
|
|
|
sqs/codec/protorpc
module
|
|
|
sqs/errors
module
|
|
|
sqs/metadata
module
|
|
|
sqs/registry
module
|
|
|
sqs/registry/consul
module
|
|
|
sqs/registry/gossip
module
|
|
|
sqs/registry/gossip/proto
module
|
|
|
sqs/registry/mdns
module
|
|
|
sqs/registry/memory
module
|
|
|
sqs/selector
module
|
|
|
sqs/selector/dns
module
|
|
|
sqs/selector/registry
module
|
|
|
sqs/selector/static
module
|
|
|
sqs/server
module
|
|
|
sqs/server/debug
module
|
|
|
sqs/server/debug/proto
module
|
|
|
sqs/server/mock
module
|
|
|
sqs/server/rpc
module
|
|
|
sqs/transport
module
|
|
|
sqs/transport/http
module
|
|
|
sqs/transport/memory
module
|
|
|
stan
module
|
|
|
stomp
module
|
|
|
stomp/selector/static
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 |
|
grpc
module
|
|
|
grpc/metadata
module
|
|
|
http
module
|
|
|
http/test
module
|
|
|
mucp
module
|
|
|
mucp/server/mock
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. |
|
bsonrpc
module
|
|
|
json-iterator
module
|
|
|
json-iterator/client
module
|
|
|
json-iterator/client/mock
module
|
|
|
json-iterator/client/rpc
module
|
|
|
jsonrpc2
module
|
|
|
jsonrpc2/codec/bytes
module
|
|
|
msgpackrpc
module
|
|
|
msgpackrpc/cmd
module
|
|
|
msgpackrpc/registry/consul
module
|
|
|
segmentio
module
|
|
|
segmentio/metadata
module
|
|
|
config
module
|
|
|
encoder
module
|
|
|
encoder/cue
module
|
|
|
encoder/cue/codec/protorpc
module
|
|
|
encoder/hcl
module
|
|
|
encoder/hcl/cmd
module
|
|
|
encoder/hcl/server/mock
module
|
|
|
encoder/server/mock
module
|
|
|
encoder/toml
module
|
|
|
encoder/xml
module
|
|
|
encoder/xml/client/rpc
module
|
|
|
encoder/xml/selector
module
|
|
|
encoder/xml/selector/dns
module
|
|
|
encoder/xml/selector/static
module
|
|
|
encoder/xml/transport/memory
module
|
|
|
encoder/yaml
module
|
|
|
registry/gossip/proto
module
|
|
|
source
module
|
|
|
source/configmap
module
|
|
|
source/consul
module
|
|
|
source/etcd
module
|
|
|
source/grpc
module
|
|
|
source/grpc/proto
module
|
|
|
source/mucp
module
|
|
|
source/mucp/broker/http
module
|
|
|
source/mucp/proto
module
|
|
|
source/mucp/registry/mdns
module
|
|
|
source/nacos
module
|
|
|
source/pkger
module
|
|
|
source/runtimevar
module
|
|
|
source/url
module
|
|
|
source/url/errors
module
|
|
|
source/url/registry
module
|
|
|
source/url/registry/consul
module
|
|
|
source/url/registry/gossip
module
|
|
|
source/url/registry/mdns
module
|
|
|
source/url/registry/memory
module
|
|
|
source/vault
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. |
|
events
module
|
|
|
codec/grpc
module
|
|
|
nats
module
|
|
|
redis
module
|
|
|
redis/client/rpc
module
|
|
|
redis/codec/protorpc
module
|
|
|
redis/transport/http
module
|
|
|
redis/transport/memory
module
|
|
|
selector/dns
module
|
|
|
logger
module
|
|
|
apex
module
|
|
|
logrus
module
|
|
|
logrus/broker/http
module
|
|
|
logrus/registry/memory
module
|
|
|
windowseventlog
module
|
|
|
zap
module
|
|
|
zap/codec/json
module
|
|
|
zerolog
module
|
|
|
Package metadata is a way of defining message headers
|
Package metadata is a way of defining message headers |
|
proxy
module
|
|
|
http
module
|
|
|
http/codec/json
module
|
|
|
http/server
module
|
|
|
http/server/debug
module
|
|
|
http/server/debug/proto
module
|
|
|
http/server/mock
module
|
|
|
http/server/rpc
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 |
|
cache
module
|
|
|
etcd
module
|
|
|
etcd/client/rpc
module
|
|
|
etcd/selector
module
|
|
|
etcd/selector/dns
module
|
|
|
etcd/selector/registry
module
|
|
|
etcd/selector/static
module
|
|
|
eureka
module
|
|
|
eureka/mock
module
|
|
|
eureka/mock/errors
module
|
|
|
eureka/mock/server/debug
module
|
|
|
eureka/server/rpc
module
|
|
|
kubernetes
module
|
|
|
kubernetes/client
module
|
|
|
kubernetes/client/api
module
|
|
|
kubernetes/client/mock
module
|
|
|
kubernetes/client/watch
module
|
|
|
multi
module
|
|
|
nacos
module
|
|
|
nacos/client/rpc
module
|
|
|
nacos/transport
module
|
|
|
nacos/transport/http
module
|
|
|
nacos/transport/memory
module
|
|
|
nats
module
|
|
|
proxy
module
|
|
|
proxy/codec/bytes
module
|
|
|
proxy/registry/mdns
module
|
|
|
zookeeper
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 |
|
label
module
|
|
|
shard
module
|
|
|
shard/codec/json
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. |
|
rpc
Package rpc provides an rpc server
|
Package rpc provides an rpc server |
|
grpc
module
|
|
|
grpc/proto
module
|
|
|
grpc/proto/broker
module
|
|
|
grpc/proto/broker/http
module
|
|
|
grpc/proto/broker/memory
module
|
|
|
grpc/proto/client
module
|
|
|
grpc/proto/client/mock
module
|
|
|
grpc/proto/client/rpc
module
|
|
|
grpc/proto/cmd
module
|
|
|
grpc/proto/codec
module
|
|
|
grpc/proto/codec/bytes
module
|
|
|
grpc/proto/codec/grpc
module
|
|
|
grpc/proto/codec/json
module
|
|
|
grpc/proto/codec/jsonrpc
module
|
|
|
grpc/proto/codec/proto
module
|
|
|
grpc/proto/codec/protorpc
module
|
|
|
grpc/proto/errors
module
|
|
|
grpc/proto/metadata
module
|
|
|
grpc/proto/registry
module
|
|
|
grpc/proto/registry/consul
module
|
|
|
grpc/proto/registry/gossip
module
|
|
|
grpc/proto/registry/mdns
module
|
|
|
grpc/proto/registry/memory
module
|
|
|
grpc/proto/selector
module
|
|
|
grpc/proto/selector/dns
module
|
|
|
grpc/proto/selector/registry
module
|
|
|
grpc/proto/selector/static
module
|
|
|
grpc/proto/server
module
|
|
|
grpc/proto/server/debug
module
|
|
|
grpc/proto/server/mock
module
|
|
|
grpc/proto/server/rpc
module
|
|
|
grpc/proto/transport
module
|
|
|
grpc/proto/transport/http
module
|
|
|
grpc/proto/transport/memory
module
|
|
|
http
module
|
|
|
http/codec/json
module
|
|
|
mucp
module
|
|
|
mucp/server/debug/proto
module
|
|
|
store
module
|
|
|
cockroach
module
|
|
|
consul
module
|
|
|
file
module
|
|
|
memcached
module
|
|
|
memory
module
|
|
|
mysql
module
|
|
|
redis
module
|
|
|
registry/memory
module
|
|
|
sync
module
|
|
|
client/rpc
module
|
|
|
consul
module
|
|
|
consul/registry/gossip/proto
module
|
|
|
etcd
module
|
|
|
etcd/registry/mdns
module
|
|
|
memory
module
|
|
|
memory/server
module
|
|
|
memory/server/debug
module
|
|
|
memory/server/debug/proto
module
|
|
|
memory/server/mock
module
|
|
|
memory/server/rpc
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 |
|
grpc
module
|
|
|
grpc/proto
module
|
|
|
grpc/proto/codec/bytes
module
|
|
|
grpc/proto/transport
module
|
|
|
grpc/proto/transport/http
module
|
|
|
grpc/proto/transport/memory
module
|
|
|
nats
module
|
|
|
nats/registry
module
|
|
|
nats/registry/consul
module
|
|
|
nats/registry/gossip
module
|
|
|
nats/registry/memory
module
|
|
|
quic
module
|
|
|
quic/codec/protorpc
module
|
|
|
rabbitmq
module
|
|
|
rabbitmq/client
module
|
|
|
rabbitmq/client/mock
module
|
|
|
rabbitmq/client/rpc
module
|
|
|
rabbitmq/cmd
module
|
|
|
rabbitmq/codec
module
|
|
|
rabbitmq/codec/bytes
module
|
|
|
rabbitmq/codec/grpc
module
|
|
|
rabbitmq/codec/json
module
|
|
|
rabbitmq/codec/jsonrpc
module
|
|
|
rabbitmq/codec/proto
module
|
|
|
rabbitmq/codec/protorpc
module
|
|
|
rabbitmq/errors
module
|
|
|
rabbitmq/metadata
module
|
|
|
rabbitmq/registry
module
|
|
|
rabbitmq/registry/consul
module
|
|
|
rabbitmq/registry/gossip
module
|
|
|
rabbitmq/registry/mdns
module
|
|
|
rabbitmq/registry/memory
module
|
|
|
rabbitmq/selector
module
|
|
|
rabbitmq/selector/dns
module
|
|
|
rabbitmq/selector/registry
module
|
|
|
rabbitmq/selector/static
module
|
|
|
rabbitmq/server
module
|
|
|
rabbitmq/server/debug
module
|
|
|
rabbitmq/server/debug/proto
module
|
|
|
rabbitmq/server/mock
module
|
|
|
rabbitmq/server/rpc
module
|
|
|
rabbitmq/transport
module
|
|
|
rabbitmq/transport/http
module
|
|
|
rabbitmq/transport/memory
module
|
|
|
tcp
module
|
|
|
utp
module
|
|
|
utp/registry/gossip/proto
module
|
|
|
wrapper
module
|
|
|
breaker
module
|
|
|
breaker/gobreaker
module
|
|
|
breaker/hystrix
module
|
|
|
breaker/hystrix/server
module
|
|
|
breaker/hystrix/server/debug
module
|
|
|
breaker/hystrix/server/mock
module
|
|
|
breaker/hystrix/server/rpc
module
|
|
|
endpoint
module
|
|
|
endpoint/broker
module
|
|
|
endpoint/broker/http
module
|
|
|
endpoint/broker/memory
module
|
|
|
endpoint/client
module
|
|
|
endpoint/client/mock
module
|
|
|
endpoint/client/rpc
module
|
|
|
endpoint/codec/bytes
module
|
|
|
endpoint/codec/grpc
module
|
|
|
endpoint/codec/json
module
|
|
|
endpoint/codec/proto
module
|
|
|
endpoint/metadata
module
|
|
|
endpoint/registry
module
|
|
|
endpoint/registry/consul
module
|
|
|
endpoint/registry/gossip
module
|
|
|
endpoint/registry/mdns
module
|
|
|
endpoint/registry/mdns/cmd
module
|
|
|
endpoint/registry/mdns/codec
module
|
|
|
endpoint/registry/memory
module
|
|
|
endpoint/selector
module
|
|
|
endpoint/selector/dns
module
|
|
|
endpoint/selector/registry
module
|
|
|
endpoint/selector/static
module
|
|
|
endpoint/server
module
|
|
|
endpoint/server/mock
module
|
|
|
endpoint/server/rpc
module
|
|
|
endpoint/transport
module
|
|
|
endpoint/transport/http
module
|
|
|
monitoring
module
|
|
|
monitoring/prometheus
module
|
|
|
monitoring/selector/registry
module
|
|
|
monitoring/victoriametrics
module
|
|
|
ratelimiter
module
|
|
|
ratelimiter/ratelimit
module
|
|
|
ratelimiter/uber
module
|
|
|
select
module
|
|
|
select/codec/jsonrpc
module
|
|
|
select/roundrobin
module
|
|
|
select/server/debug/proto
module
|
|
|
select/shard
module
|
|
|
select/shard/server/debug
module
|
|
|
select/version
module
|
|
|
select/version/server/debug
module
|
|
|
service
module
|
|
|
trace
module
|
|
|
trace/awsxray
module
|
|
|
trace/awsxray/codec
module
|
|
|
trace/awsxray/codec/bytes
module
|
|
|
trace/awsxray/codec/grpc
module
|
|
|
trace/awsxray/codec/json
module
|
|
|
trace/awsxray/codec/jsonrpc
module
|
|
|
trace/awsxray/codec/proto
module
|
|
|
trace/awsxray/codec/protorpc
module
|
|
|
trace/datadog
module
|
|
|
trace/opencensus
module
|
|
|
trace/opentracing
module
|
|
|
validator
module
|
