disco_go

package module
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

README

Go client for disco service

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	ClientId() string
	ServiceId() string
	State() api.ClientState
	Endpoint(typ api.EndpointType) (string, error)
	Field(key string) (any, bool)
}

type DiscoClient

type DiscoClient interface {

	// Leave - unregister client from disco server
	Leave() error

	// Registry - get registry object
	Registry() DiscoRegistry
}

func NewDiscoHttpClient

func NewDiscoHttpClient(config *DiscoClientConfig) (DiscoClient, error)

func NewDiscoHttpClientPanicOnAuthError

func NewDiscoHttpClientPanicOnAuthError(config *DiscoClientConfig) DiscoClient

type DiscoClientConfig

type DiscoClientConfig struct {
	Login                  string
	Password               string
	Token                  string
	DiscoEndpoints         []string
	ClientName             string
	ClientEndpoints        []string
	ClientMeta             map[string]any
	ClientTimeout          time.Duration
	ClientBreakThreshold   uint
	ClientRetryAttempts    uint
	ClientRetryInterval    time.Duration
	PerformSslVerification bool
}

func DefaultConfig

func DefaultConfig() *DiscoClientConfig

func EmptyConfig

func EmptyConfig() *DiscoClientConfig

func (*DiscoClientConfig) SkipSslVerify

func (dc *DiscoClientConfig) SkipSslVerify() *DiscoClientConfig

func (*DiscoClientConfig) WithAuth added in v0.0.15

func (dc *DiscoClientConfig) WithAuth(login, password string) *DiscoClientConfig

func (*DiscoClientConfig) WithBreaker

func (dc *DiscoClientConfig) WithBreaker(threshold uint) *DiscoClientConfig

func (*DiscoClientConfig) WithDisco

func (dc *DiscoClientConfig) WithDisco(endpoints []string) *DiscoClientConfig

func (*DiscoClientConfig) WithEndpoints

func (dc *DiscoClientConfig) WithEndpoints(endpoints []string) *DiscoClientConfig

func (*DiscoClientConfig) WithMeta

func (dc *DiscoClientConfig) WithMeta(meta map[string]any) *DiscoClientConfig

func (*DiscoClientConfig) WithName

func (dc *DiscoClientConfig) WithName(name string) *DiscoClientConfig

func (*DiscoClientConfig) WithRetry

func (dc *DiscoClientConfig) WithRetry(attempts uint, delay time.Duration) *DiscoClientConfig

func (*DiscoClientConfig) WithTimeout

func (dc *DiscoClientConfig) WithTimeout(tm time.Duration) *DiscoClientConfig

func (*DiscoClientConfig) WithToken

func (dc *DiscoClientConfig) WithToken(token string) *DiscoClientConfig

type DiscoRegistry

type DiscoRegistry interface {

	// Services - list all registered services
	Services() []string

	// List - list all registered clients
	List() []Client

	// Get - get client for registered service
	//       (only in UP state; next from ring buffer)
	Get(service string) (Client, error)

	// Sync - synchronize registrations data
	Sync(clients []Client)

	// Reset - reset local discovery cache
	Reset()
}

func NewRegistry

func NewRegistry() DiscoRegistry

type LoadBalancingHttpClient

type LoadBalancingHttpClient interface {
	Get(url string, headers map[string]string) ([]byte, map[string]string, int, error)
	GetWithParams(url string, params map[string]any, headers map[string]string) ([]byte, map[string]string, int, error)
}

Jump to

Keyboard shortcuts

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