network

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2019 License: Apache-2.0 Imports: 20 Imported by: 11

Documentation

Overview

Package network is for creating internetworks

Index

Constants

This section is empty.

Variables

View Source
var (
	// NetworkChannel is the name of the tunnel channel for passing network messages
	NetworkChannel = "network"
	// ControlChannel is the name of the tunnel channel for passing control message
	ControlChannel = "control"
	// DefaultLink is default network link
	DefaultLink = "network"
)
View Source
var (
	// ErrMsgUnknown is returned when unknown message is attempted to send or receive
	ErrMsgUnknown = errors.New("unknown message")
	// ErrClientNotFound is returned when client for tunnel channel could not be found
	ErrClientNotFound = errors.New("client not found")
)
View Source
var (
	// DefaultName is default network name
	DefaultName = "go.micro"
	// DefaultAddress is default network address
	DefaultAddress = ":0"
	// ResolveTime defines time interval to periodically resolve network nodes
	ResolveTime = 1 * time.Minute
	// AnnounceTime defines time interval to periodically announce node neighbours
	AnnounceTime = 30 * time.Second
	// PruneTime defines time interval to periodically check nodes that need to be pruned
	// due to their not announcing their presence within this time interval
	PruneTime = 90 * time.Second
)

Functions

This section is empty.

Types

type Network

type Network interface {
	// Node is network node
	Node
	// Options returns the network options
	Options() Options
	// Name of the network
	Name() string
	// Connect starts the resolver and tunnel server
	Connect() error
	// Nodes returns list of network nodes
	Nodes() []Node
	// Close stops the tunnel and resolving
	Close() error
	// Client is micro client
	Client() client.Client
	// Server is micro server
	Server() server.Server
}

Network is micro network

func NewNetwork added in v1.10.0

func NewNetwork(opts ...Option) Network

NewNetwork returns a new network interface

type Node

type Node interface {
	// Id is node id
	Id() string
	// Address is node bind address
	Address() string
	// Neighbourhood is node neighbourhood
	Neighbourhood() []Node
	// Network is the network node is in
	Network() Network
}

Node is network node

type Option added in v1.10.0

type Option func(*Options)

func Address added in v1.10.0

func Address(a string) Option

Address sets the network address

func Id added in v1.10.0

func Id(id string) Option

Id sets the id of the network node

func Name added in v1.10.0

func Name(n string) Option

Name sets the network name

func Nodes added in v1.10.0

func Nodes(n ...string) Option

Nodes is a list of seed nodes used along with resolved node

func Proxy added in v1.10.0

func Proxy(p proxy.Proxy) Option

Proxy sets the network proxy

func Resolver added in v1.10.0

func Resolver(r resolver.Resolver) Option

Resolver is the network resolver

func Router added in v1.10.0

func Router(r router.Router) Option

Router sets the network router

func Tunnel added in v1.10.0

func Tunnel(t tunnel.Tunnel) Option

Tunnel sets the network tunnel

type Options added in v1.10.0

type Options struct {
	// Id of the node
	Id string
	// Name of the network
	Name string
	// Address to bind to
	Address string
	// Nodes is a list of seed nodes
	Nodes []string
	// Tunnel is network tunnel
	Tunnel tunnel.Tunnel
	// Router is network router
	Router router.Router
	// Proxy is network proxy
	Proxy proxy.Proxy
	// Resolver is network resolver
	Resolver resolver.Resolver
}

Options configure network

func DefaultOptions added in v1.10.0

func DefaultOptions() Options

DefaultOptions returns network default options

Directories

Path Synopsis
Package handler implements network RPC handler
Package handler implements network RPC handler
Package resolver resolves network names to addresses
Package resolver resolves network names to addresses
dns
Package dns resolves names to dns srv records
Package dns resolves names to dns srv records
http
Package http resolves names to network addresses using a http request
Package http resolves names to network addresses using a http request
registry
Package registry resolves names using the go-micro registry
Package registry resolves names using the go-micro registry
static
Package static is a static resolver
Package static is a static resolver

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL