Documentation
¶
Index ¶
- Variables
- func FindFreeLocalAddress(from, to int) (string, error)
- func FindFreePort(from, to int) (freeport int, err error)
- func FreePort() (freeport int, err error)
- func LocalFreeAddr() (string, error)
- func LocalFreeIPv6Addr() (string, error)
- func SetFlags()
- type Event
- type Filter
- type FnUnregister
- type ObserveFilter
- type ObserverEvent
- type Option
- type Options
- type Pong
- type Pubsub
- type PubsubMsg
- type Registry
- type Service
- type Subscription
- type Timestamps
Constants ¶
This section is empty.
Variables ¶
var ( //DefaultTimeout timeout for GetServices DefaultTimeout = 100 * time.Millisecond //DefaultRegisterInterval time between 2 registration DefaultRegisterInterval = 20 * time.Second //DefaultCheckDueInterval time between 2 checks DefaultCheckDueInterval = 200 * time.Millisecond //DefaultMainTopic default message base. All topics will start with this message DefaultMainTopic = "registry" //DefaultDueDurationFactor service expire when currentTime > lastRegisteredTime + registerInternal * dueDrationFactor DefaultDueDurationFactor = float32(1.5) )
var ErrNoFreePort = errors.New("No free port available")
ErrNoFreePort when no free port is available
var ( //ErrNotFound when no service found ErrNotFound = errors.New("No service found") )
Functions ¶
func FindFreeLocalAddress ¶ added in v0.0.7
FindFreeLocalAddress return local free address using range of port
func FindFreePort ¶ added in v0.0.7
FindFreePort from range of integer
func LocalFreeAddr ¶ added in v0.0.7
LocalFreeAddr return local free address (127.0.0.1:34545)
func LocalFreeIPv6Addr ¶ added in v0.0.7
LocalFreeIPv6Addr return local free address ([::1]:34545)
Types ¶
type Event ¶ added in v0.0.6
type Event string
Event represent event (register|unregister|unavailbale)
type Filter ¶
Filter used for filtering service do not return nil Ex Load Balancing
func LocalhostFilter ¶
func LocalhostFilter() Filter
LocalhostFilter return true if hostname is equals to service host
type ObserveFilter ¶ added in v0.0.6
ObserveFilter used to accept (or not) new registered service.
Ex: you want only service on same host
func LocalhostOFilter ¶ added in v0.0.6
func LocalhostOFilter() ObserveFilter
LocalhostOFilter accept only service on the same machine
type ObserverEvent ¶ added in v0.0.6
ObserverEvent event tigered
type Option ¶
type Option func(opts *Options)
Option option func
func AddObserveFilter ¶ added in v0.0.6
func AddObserveFilter(f ObserveFilter) Option
AddObserveFilter adding filter
func RegisterInterval ¶
RegisterInterval time between 2 register publish
func SetObserverEvent ¶ added in v0.0.6
func SetObserverEvent(ev ObserverEvent) Option
SetObserverEvent set handler for Observer Event
func WithPubsub ¶ added in v0.0.6
WithPubsub initialyse service registry with nats connection
type Options ¶
type Options struct {
// contains filtered or unexported fields
}
Options all configurable option
type Pong ¶
type Pong struct {
Service
Timestamps *Timestamps `json:"t,omitempty"`
}
Pong response to ping
type Pubsub ¶ added in v0.0.6
type Pubsub interface {
Sub(topic string, f func(m *PubsubMsg)) (Subscription, error)
Pub(topic string, data []byte) error
}
Pubsub interface used in registry for pubsub operation
type Registry ¶
type Registry interface {
Register(s Service) (FnUnregister, error)
Unregister(s Service) error
GetServices(name string) ([]Service, error)
GetService(name string, filters ...Filter) (*Service, error)
Observe(serviceName string) error
Close() error
}
Registry Register, Unregister
type Service ¶
type Service struct {
//Network tcp/unix/tpc6
Network string `json:"net,omitempty"`
//Bind address
Address string `json:"add,omitempty"`
//URL base used for communicate with this service
URL string `json:"url,omitempty"`
//Name service name
Name string `json:"name,omitempty"`
//Version semver version
Version string `json:"v,omitempty"`
//Host
Host string `json:"h,omitempty"`
// contains filtered or unexported fields
}
Service service struct
type Subscription ¶ added in v0.0.6
Subscription subscription
type Timestamps ¶
type Timestamps struct {
//Registered date registered in nanoseconds (unix timestamp in milliseconds)
Registered int64
//expiration duration in milliseconds
Duration int
}
Timestamps define registered datetime and expiration duration