micro - ActiveState ActiveGo 1.8
...

Package micro

import "github.com/micro/go-micro"
Overview
Index
Subdirectories

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
    func NewFunction(opts ...Option) 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 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
    func NewPublisher(topic string, c client.Client) Publisher
type Service
    func FromContext(ctx context.Context) (Service, bool)
    func NewService(opts ...Option) Service

Package files

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

Variables

var (
    HeaderPrefix = "X-Micro-"
)

func NewContext

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

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

type Function

Function is a one time executing Service

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
}

func NewFunction

func NewFunction(opts ...Option) Function

NewFunction returns a new Function for a one time executing Service

type Option

type Option func(*Options)

func Action

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

func AfterStart

func AfterStart(fn func() error) Option

func AfterStop

func AfterStop(fn func() error) Option

func BeforeStart

func BeforeStart(fn func() error) Option

func BeforeStop

func BeforeStop(fn func() error) Option

func Broker

func Broker(b broker.Broker) Option

func Client

func Client(c client.Client) Option

func Cmd

func Cmd(c cmd.Cmd) Option

func Context

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

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

func Metadata

func Metadata(md map[string]string) Option

Metadata associated with the service

func Name

func Name(n string) Option

Name of the service

func RegisterInterval

func RegisterInterval(t time.Duration) Option

RegisterInterval specifies the interval on which to re-register

func RegisterTTL

func RegisterTTL(t time.Duration) Option

RegisterTTL specifies the TTL to use when registering the service

func Registry

func Registry(r registry.Registry) Option

Registry sets the registry for the service and the underlying components

func Server

func Server(s server.Server) Option

func Transport

func Transport(t transport.Transport) Option

Transport sets the transport for the service and the underlying components

func Version

func Version(v string) Option

Version of the service

func WrapCall

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

WrapCall is a convenience method for wrapping a Client CallFunc

func WrapClient

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.

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

Publisher is syntactic sugar for publishing

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

func NewPublisher

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

NewPublisher returns a new Publisher

type Service

Service is an interface that wraps the lower level libraries within go-micro. Its a convenience method for building and initialising services.

type Service interface {
    Init(...Option)
    Options() Options
    Client() client.Client
    Server() server.Server
    Run() error
    String() string
}

func FromContext

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

FromContext retrieves a Service from the Context.

func NewService

func NewService(opts ...Option) Service

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

Subdirectories

Name Synopsis
..
broker Package broker is an interface used for asynchronous messaging
codec
json
noop
http
mock
client Package client is an interface for an RPC client
mock
rpc
cmd Package cmd is an interface for parsing the command line
codec Package codec is an interface for encoding messages
jsonrpc
protorpc Package proto is a generated protocol buffer package.
errors Package errors provides a way to return detailed information for an RPC request error.
metadata Package metadata is a way of defining message headers
registry Package registry is an interface for service discovery
consul
mdns
mock
selector Package selector is a way to load balance service nodes
cache
server Package server is an interface for a micro server
debug
proto Package debug is a generated protocol buffer package.
mock
rpc
transport Package is an interface for synchronous communication
codec
json
noop
http
mock