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

package broker

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

Package broker is an interface used for asynchronous messaging

Index

Package Files

broker.go options.go

type Broker Uses

type Broker interface {
    Init(...Option) error
    Options() Options
    Address() string
    Connect() error
    Disconnect() error
    Publish(topic string, m *Message, opts ...PublishOption) error
    Subscribe(topic string, h Handler, opts ...SubscribeOption) (Subscriber, error)
    String() string
}

Broker is an interface used for asynchronous messaging.

type ErrorHandler Uses

type ErrorHandler func(*Message, error)

type Handler Uses

type Handler func(*Message) error

Handler is used to process messages via a subscription of a topic.

type Message Uses

type Message struct {
    Header map[string]string
    Body   []byte
}

type Option Uses

type Option func(*Options)

func Addrs Uses

func Addrs(addrs ...string) Option

Addrs sets the host addresses to be used by the broker

func Codec Uses

func Codec(c codec.Marshaler) Option

Codec sets the codec used for encoding/decoding used where a broker does not support headers

func Registry Uses

func Registry(r registry.Registry) Option

func Secure Uses

func Secure(b bool) Option

Secure communication with the broker

func TLSConfig Uses

func TLSConfig(t *tls.Config) Option

Specify TLS Config

type Options Uses

type Options struct {
    Addrs  []string
    Secure bool
    Codec  codec.Marshaler

    TLSConfig *tls.Config
    // Registry used for clustering
    Registry registry.Registry
    // Other options for implementations of the interface
    // can be stored in a context
    Context context.Context
}

type PublishOption Uses

type PublishOption func(*PublishOptions)

func PublishContext Uses

func PublishContext(ctx context.Context) PublishOption

PublishContext set context

type PublishOptions Uses

type PublishOptions struct {
    // Other options for implementations of the interface
    // can be stored in a context
    Context context.Context
}

type SubscribeOption Uses

type SubscribeOption func(*SubscribeOptions)

func HandleError Uses

func HandleError(h ErrorHandler) SubscribeOption

ErrorHandler will catch all broker errors that cant be handled in normal way, for example Codec errors

func Queue Uses

func Queue(name string) SubscribeOption

Queue sets the name of the queue to share messages on

func SubscribeContext Uses

func SubscribeContext(ctx context.Context) SubscribeOption

SubscribeContext set context

type SubscribeOptions Uses

type SubscribeOptions struct {
    // Handler executed when errors occur processing messages
    ErrorHandler ErrorHandler

    // Subscribers with the same queue name
    // will create a shared subscription where each
    // receives a subset of messages.
    Queue string

    // Other options for implementations of the interface
    // can be stored in a context
    Context context.Context
}

func NewSubscribeOptions Uses

func NewSubscribeOptions(opts ...SubscribeOption) SubscribeOptions

type Subscriber Uses

type Subscriber interface {
    Options() SubscribeOptions
    Topic() string
    Unsubscribe() error
}

Subscriber is a convenience return type for the Subscribe method

Directories

PathSynopsis
httpPackage http provides a http based message broker
memoryPackage memory provides a memory broker

Package broker imports 4 packages (graph) and is imported by 440 packages. Updated 2020-09-08. Refresh now. Tools for package owners.