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 |
---|---|
api
module
|
|
handler
module
|
|
handler/api
module
|
|
handler/event
module
|
|
handler/http
module
|
|
handler/rpc
module
|
|
handler/web
module
|
|
internal
module
|
|
internal/proto
module
|
|
proto
module
|
|
resolver
module
|
|
resolver/grpc
module
|
|
resolver/host
module
|
|
resolver/path
module
|
|
resolver/vpath
module
|
|
router
module
|
|
router/registry
module
|
|
router/static
module
|
|
router/util
module
|
|
server
module
|
|
server/acme
module
|
|
server/acme/autocert
module
|
|
server/cors
module
|
|
server/http
module
|
|
auth
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 |
cache
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 |
util
module
|
|
Package cmd is an interface for parsing the command line
|
Package cmd is an interface for parsing the command line |
dashboard
module
|
|
dashboard/config
module
|
|
dashboard/handler
module
|
|
dashboard/handler/account
module
|
|
dashboard/handler/broker
module
|
|
dashboard/handler/client
module
|
|
dashboard/handler/registry
module
|
|
dashboard/handler/route
module
|
|
dashboard/handler/statistics
module
|
|
dashboard/util
module
|
|
dashboard/util/broker/http
module
|
|
dashboard/web
module
|
|
micro
module
|
|
micro/cli
module
|
|
micro/cli/call
module
|
|
micro/cli/call/client/rpc
module
|
|
micro/cli/describe
module
|
|
micro/cli/generate
module
|
|
micro/cli/new
module
|
|
micro/cli/new/codec/proto
module
|
|
micro/cli/run
module
|
|
micro/cli/services
module
|
|
micro/cli/stream
module
|
|
micro/debug
module
|
|
micro/debug/trace
module
|
|
micro/debug/trace/jaeger
module
|
|
micro/generator
module
|
|
micro/generator/template
module
|
|
protoc-gen-micro
module
|
|
protoc-gen-micro/examples
module
|
|
protoc-gen-micro/generator
module
|
|
protoc-gen-micro/plugin
module
|
|
selector/static
module
|
|
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. |
text
module
|
|
config
module
|
|
encoder
module
|
|
encoder/json
module
|
|
loader
module
|
|
loader/memory
module
|
|
reader
module
|
|
reader/json
module
|
|
secrets
module
|
|
secrets/box
module
|
|
secrets/secretbox
module
|
|
source
module
|
|
source/cli
module
|
|
source/env
module
|
|
source/file
module
|
|
source/flag
module
|
|
source/memory
module
|
|
dashboard
module
|
|
debug
module
|
|
handler
module
|
|
log
module
|
|
log/memory
module
|
|
log/noop
module
|
|
profile
module
|
|
profile/http
module
|
|
profile/pprof
module
|
|
proto
module
|
|
stats
module
|
|
trace
module
|
|
trace/jaeger
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
|
|
examples
module
|
|
broker
module
|
|
broker/consumer
module
|
|
broker/producer
module
|
|
cache
module
|
|
cache/handler
module
|
|
cache/proto
module
|
|
client
module
|
|
client/codegen
module
|
|
client/dc_filter
module
|
|
client/dc_selector
module
|
|
client/pub
module
|
|
client/selector
module
|
|
client/wrapper
module
|
|
config
module
|
|
config/file
module
|
|
config/grpc
module
|
|
config/grpc/client
module
|
|
config/grpc/srv
module
|
|
config/modify
module
|
|
config/yaml
module
|
|
event
module
|
|
event/srv
module
|
|
event/srv/proto
module
|
|
filter
module
|
|
filter/version
module
|
|
flags
module
|
|
function
module
|
|
function/proto
module
|
|
gateway
module
|
|
gateway/proto
module
|
|
gateway/proto/hello
module
|
|
getip
module
|
|
getip/proto
module
|
|
graceful
module
|
|
greeter
module
|
|
greeter/cli
module
|
|
greeter/cli/sidecar
module
|
|
greeter/srv
module
|
|
greeter/srv/proto
module
|
|
greeter/srv/proto/hello
module
|
|
heartbeat
module
|
|
helloworld
module
|
|
helloworld/proto
module
|
|
http
module
|
|
http/cli
module
|
|
http/rpccli
module
|
|
http/srv
module
|
|
metadata
module
|
|
metadata/cli
module
|
|
metadata/srv
module
|
|
mocking
module
|
|
mocking/mock
module
|
|
noproto
module
|
|
noproto/client
module
|
|
pubsub
module
|
|
pubsub/cli
module
|
|
pubsub/srv
module
|
|
pubsub/srv/proto
module
|
|
redirect
module
|
|
roundrobin
module
|
|
secure
module
|
|
secure/cli
module
|
|
secure/srv
module
|
|
secure/srv/proto
module
|
|
secure/srv/proto/hello
module
|
|
server
module
|
|
server/codegen
module
|
|
server/handler
module
|
|
server/proto
module
|
|
server/proto/example
module
|
|
server/subscriber
module
|
|
server/wrapper
module
|
|
service
module
|
|
service/proto
module
|
|
sharding
module
|
|
shutdown
module
|
|
stream
module
|
|
stream/grpc
module
|
|
stream/grpc/client
module
|
|
stream/grpc/proto
module
|
|
stream/grpc/server
module
|
|
stream/rpc
module
|
|
stream/rpc/client
module
|
|
stream/rpc/server
module
|
|
stream/rpc/server/proto
module
|
|
waitgroup
module
|
|
wrapper
module
|
|
wrapper/cli
module
|
|
go-micro
module
|
|
go-micro-gen
module
|
|
goctl
module
|
|
gomu
module
|
|
grpc
module
|
|
logger
module
|
|
macro
module
|
|
Package metadata is a way of defining message headers
|
Package metadata is a way of defining message headers |
micro
module
|
|
cli
module
|
|
cli/call
module
|
|
cli/call/cmd
module
|
|
cli/cmd
module
|
|
cli/describe
module
|
|
cli/describe/cmd
module
|
|
cli/generate
module
|
|
cli/generate/cmd
module
|
|
cli/new
module
|
|
cli/new/cmd
module
|
|
cli/run
module
|
|
cli/run/cmd
module
|
|
cli/services
module
|
|
cli/stream
module
|
|
cli/stream/cmd
module
|
|
cmd
module
|
|
cmd/protoc-gen-micro
module
|
|
debug
module
|
|
debug/trace
module
|
|
debug/trace/jaeger
module
|
|
generator
module
|
|
generator/cmd
module
|
|
generator/template
module
|
|
generator/template/cmd
module
|
|
plugins
module
|
|
acme
module
|
|
acme/certmagic
module
|
|
auth
module
|
|
auth/jwt
module
|
|
auth/jwt/token
module
|
|
broker
module
|
|
broker/gocloud
module
|
|
broker/googlepubsub
module
|
|
broker/grpc
module
|
|
broker/grpc/proto
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/snssqs
module
|
|
broker/sqs
module
|
|
broker/stan
module
|
|
broker/stomp
module
|
|
client
module
|
|
client/grpc
module
|
|
client/http
module
|
|
client/http/test
module
|
|
client/mock
module
|
|
client/mucp
module
|
|
codec
module
|
|
codec/bsonrpc
module
|
|
codec/json-iterator
module
|
|
codec/jsonrpc2
module
|
|
codec/msgpackrpc
module
|
|
codec/segmentio
module
|
|
config
module
|
|
config/encoder
module
|
|
config/encoder/cue
module
|
|
config/encoder/hcl
module
|
|
config/encoder/toml
module
|
|
config/encoder/xml
module
|
|
config/encoder/yaml
module
|
|
config/source
module
|
|
config/source/configmap
module
|
|
config/source/consul
module
|
|
config/source/etcd
module
|
|
config/source/grpc
module
|
|
config/source/grpc/proto
module
|
|
config/source/mucp
module
|
|
config/source/mucp/proto
module
|
|
config/source/nacos
module
|
|
config/source/pkger
module
|
|
config/source/runtimevar
module
|
|
config/source/url
module
|
|
config/source/vault
module
|
|
events
module
|
|
events/nats
module
|
|
events/redis
module
|
|
logger
module
|
|
logger/apex
module
|
|
logger/logrus
module
|
|
logger/windowseventlog
module
|
|
logger/zap
module
|
|
logger/zerolog
module
|
|
proxy
module
|
|
proxy/http
module
|
|
registry
module
|
|
registry/cache
module
|
|
registry/consul
module
|
|
registry/etcd
module
|
|
registry/eureka
module
|
|
registry/eureka/mock
module
|
|
registry/gossip
module
|
|
registry/gossip/proto
module
|
|
registry/kubernetes
module
|
|
registry/kubernetes/client
module
|
|
registry/mdns
module
|
|
registry/memory
module
|
|
registry/multi
module
|
|
registry/nacos
module
|
|
registry/nats
module
|
|
registry/proxy
module
|
|
registry/zookeeper
module
|
|
selector
module
|
|
selector/dns
module
|
|
selector/label
module
|
|
selector/registry
module
|
|
selector/shard
module
|
|
selector/static
module
|
|
server
module
|
|
server/grpc
module
|
|
server/grpc/proto
module
|
|
server/http
module
|
|
server/mucp
module
|
|
store
module
|
|
store/cockroach
module
|
|
store/consul
module
|
|
store/file
module
|
|
store/memcached
module
|
|
store/memory
module
|
|
store/mysql
module
|
|
store/redis
module
|
|
sync
module
|
|
sync/consul
module
|
|
sync/etcd
module
|
|
sync/memory
module
|
|
transport
module
|
|
transport/grpc
module
|
|
transport/grpc/proto
module
|
|
transport/http
module
|
|
transport/memory
module
|
|
transport/nats
module
|
|
transport/quic
module
|
|
transport/rabbitmq
module
|
|
transport/tcp
module
|
|
transport/utp
module
|
|
v4/server
module
|
|
v4/server/grpc
module
|
|
wrapper
module
|
|
wrapper/breaker
module
|
|
wrapper/breaker/gobreaker
module
|
|
wrapper/breaker/hystrix
module
|
|
wrapper/endpoint
module
|
|
wrapper/monitoring
module
|
|
wrapper/ratelimiter
module
|
|
wrapper/ratelimiter/uber
module
|
|
wrapper/select
module
|
|
wrapper/select/roundrobin
module
|
|
wrapper/select/shard
module
|
|
wrapper/select/version
module
|
|
wrapper/service
module
|
|
wrapper/trace
module
|
|
wrapper/trace/awsxray
module
|
|
wrapper/trace/datadog
module
|
|
wrapper/trace/opencensus
module
|
|
wrapper/trace/opentracing
module
|
|
wrapper/validator
module
|
|
proto-gen-micro
module
|
|
protoc
module
|
|
protoc-
module
|
|
protoc-gen-go
module
|
|
protoc-gen-go-micro
module
|
|
protoc-gen-micr
module
|
|
protoc-gen-micro
module
|
|
generator
module
|
|
generator/cmd
module
|
|
plugin
module
|
|
plugin/micro
module
|
|
plugin/micro/cmd
module
|
|
protoc-gen-micro.dev
module
|
|
protoc-gen-micror
module
|
|
protoc-gen-micro~
module
|
|
protoc-gen-openapi
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
|
|
runtime
module
|
|
kubernetes
module
|
|
local
module
|
|
local/build
module
|
|
local/build/docker
module
|
|
local/build/go
module
|
|
local/git
module
|
|
local/process
module
|
|
local/process/os
module
|
|
local/source
module
|
|
local/source/git
module
|
|
local/source/go
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 |
http
module
|
|
proto
module
|
|
services
module
|
|
address
module
|
|
answer
module
|
|
cache
module
|
|
crypto
module
|
|
currency
module
|
|
db
module
|
|
email
module
|
|
emoji
module
|
|
evchargers
module
|
|
file
module
|
|
forex
module
|
|
function
module
|
|
geocoding
module
|
|
gifs
module
|
|
google
module
|
|
helloworld
module
|
|
holidays
module
|
|
id
module
|
|
image
module
|
|
ip
module
|
|
location
module
|
|
notes
module
|
|
otp
module
|
|
postcode
module
|
|
prayer
module
|
|
qr
module
|
|
quran
module
|
|
routing
module
|
|
rss
module
|
|
sentiment
module
|
|
sms
module
|
|
stock
module
|
|
stream
module
|
|
sunnah
module
|
|
thumbnail
module
|
|
time
module
|
|
twitter
module
|
|
url
module
|
|
user
module
|
|
vehicle
module
|
|
weather
module
|
|
youtube
module
|
|
sidecar
module
|
|
store
module
|
|
sync
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 |
util
module
|
|
addr
module
|
|
backoff
module
|
|
buf
module
|
|
ctx
module
|
|
file
module
|
|
file/proto
module
|
|
grpc
module
|
|
http
module
|
|
io
module
|
|
jitter
module
|
|
kubernetes
module
|
|
kubernetes/api
module
|
|
kubernetes/client
module
|
|
log
module
|
|
mdns
module
|
|
net
module
|
|
pki
module
|
|
pool
module
|
|
protoc-gen-micro
module
|
|
qson
module
|
|
registry
module
|
|
ring
module
|
|
signal
module
|
|
socket
module
|
|
stream
module
|
|
sync
module
|
|
test
module
|
|
tls
module
|
|
wrapper
module
|
|
web
module
|