go-micro: github.com/micro/go-micro Index | Files | Directories

package micro

import "github.com/micro/go-micro"

Package micro is a pluggable RPC framework for microservices


Package Files

function.go go-micro.go options.go publisher.go service.go wrapper.go


var (
    HeaderPrefix = "X-Micro-"

func NewContext Uses

func NewContext(ctx context.Context, s Service) context.Context

NewContext returns a new Context with the Service embedded within it.

func RegisterHandler Uses

func RegisterHandler(s server.Server, h interface{}, opts ...server.HandlerOption) error

RegisterHandler is syntactic sugar for registering a handler

func RegisterSubscriber Uses

func RegisterSubscriber(topic string, s server.Server, h interface{}, opts ...server.SubscriberOption) error

RegisterSubscriber is syntactic sugar for registering a subscriber

type Function Uses

type Function interface {
    // Inherits Service interface
    // 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 Uses

func NewFunction(opts ...Option) Function

NewFunction returns a new Function for a one time executing Service

type Option Uses

type Option func(*Options)

func Action Uses

func Action(a func(*cli.Context)) Option

func AfterStart Uses

func AfterStart(fn func() error) Option

func AfterStop Uses

func AfterStop(fn func() error) Option

func BeforeStart Uses

func BeforeStart(fn func() error) Option

func BeforeStop Uses

func BeforeStop(fn func() error) Option

func Broker Uses

func Broker(b broker.Broker) Option

func Client Uses

func Client(c client.Client) Option

func Cmd Uses

func Cmd(c cmd.Cmd) Option

func Context Uses

func Context(ctx context.Context) Option

Context specifies a context for the service. Can be used to signal shutdown of the service. Can be used for extra option values.

func Flags Uses

func Flags(flags ...cli.Flag) Option

func Metadata Uses

func Metadata(md map[string]string) Option

Metadata associated with the service

func Name Uses

func Name(n string) Option

Name of the service

func RegisterInterval Uses

func RegisterInterval(t time.Duration) Option

RegisterInterval specifies the interval on which to re-register

func RegisterTTL Uses

func RegisterTTL(t time.Duration) Option

RegisterTTL specifies the TTL to use when registering the service

func Registry Uses

func Registry(r registry.Registry) Option

Registry sets the registry for the service and the underlying components

func Selector Uses

func Selector(s selector.Selector) Option

Selector sets the selector for the service client

func Server Uses

func Server(s server.Server) Option

func Transport Uses

func Transport(t transport.Transport) Option

Transport sets the transport for the service and the underlying components

func Version Uses

func Version(v string) Option

Version of the service

func WrapCall Uses

func WrapCall(w ...client.CallWrapper) Option

WrapCall is a convenience method for wrapping a Client CallFunc

func WrapClient Uses

func WrapClient(w ...client.Wrapper) Option

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 Uses

func WrapHandler(w ...server.HandlerWrapper) Option

WrapHandler adds a handler Wrapper to a list of options passed into the server

func WrapSubscriber Uses

func WrapSubscriber(w ...server.SubscriberWrapper) Option

WrapSubscriber adds a subscriber Wrapper to a list of options passed into the server

type Options Uses

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 Uses

type Publisher interface {
    Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error

Publisher is syntactic sugar for publishing

func NewPublisher Uses

func NewPublisher(topic string, c client.Client) Publisher

NewPublisher returns a new Publisher

type Service Uses

type Service interface {
    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 Uses

func FromContext(ctx context.Context) (Service, bool)

FromContext retrieves a Service from the Context.

func NewService Uses

func NewService(opts ...Option) Service

NewService creates and returns a new Service based on the packages within.


brokerPackage broker is an interface used for asynchronous messaging
broker/httpPackage http provides a http based message broker
clientPackage client is an interface for an RPC client
client/mockPackage mock provides a mock client for testing
client/rpcPackage rpc provides an rpc client
cmdPackage cmd is an interface for parsing the command line
codecPackage codec is an interface for encoding messages
codec/jsonrpcPackage jsonrpc provides a json-rpc 1.0 codec
codec/protorpcPackage proto is a generated protocol buffer package.
errorsPackage errors provides a way to return detailed information for an RPC request error.
metadataPackage metadata is a way of defining message headers
registryPackage registry is an interface for service discovery
registry/consulPackage consul provides a consul based registry and is the default discovery system
registry/gossipPackage Gossip provides a gossip registry based on hashicorp/memberlist
registry/gossip/protoPackage gossip is a generated protocol buffer package.
registry/mdnsPackage mdns is a multicast dns registry
registry/mockPackage mock provides a mock registry for testing
selectorPackage selector is a way to load balance service nodes
selector/cachePackage cache is a caching selector.
serverPackage server is an interface for a micro server
server/debug/protoPackage debug is a generated protocol buffer package.
transportPackage transport is an interface for synchronous communication
transport/httpPackage http returns a http2 transport using net/http

Package micro imports 16 packages (graph) and is imported by 222 packages. Updated 2018-12-18. Refresh now. Tools for package owners.