Documentation ¶
Index ¶
- Variables
- type Cache
- type CacheOptions
- type Config
- type DefaultServiceInstance
- func (d *DefaultServiceInstance) GetClusterName() string
- func (d *DefaultServiceInstance) GetGroupName() string
- func (d *DefaultServiceInstance) GetHost() string
- func (d *DefaultServiceInstance) GetId() string
- func (d *DefaultServiceInstance) GetMetadata() map[string]string
- func (d *DefaultServiceInstance) GetPort() uint64
- func (d *DefaultServiceInstance) GetServiceName() string
- func (d *DefaultServiceInstance) GetTags() []string
- func (d *DefaultServiceInstance) GetWeight() float64
- func (d *DefaultServiceInstance) IsEnable() bool
- func (d *DefaultServiceInstance) IsHealthy() bool
- type Event
- type EventType
- type ISelector
- type IServiceDiscovery
- type IServiceDiscoveryClient
- type Next
- type Option
- type Result
- type Selector
- type Service
- type ServiceInstance
- type Strategy
- type UriEntry
- type UriParser
- type WatchOption
- type WatchOptions
- type Watcher
Constants ¶
This section is empty.
Variables ¶
var ( //DefaultTTL = 5 * time.Minute DefaultTTL = 30 * time.Second )
var ErrNoEndpoints = errors.New("no endpoints available")
ErrNoEndpoints is returned when no qualifying endpoints are available.
Functions ¶
This section is empty.
Types ¶
type Cache ¶ added in v1.6.6
type Cache interface { GetService(serviceName string) (*Service, error) // stop the cache of watcher Stop() }
func NewCache ¶ added in v1.6.6
func NewCache(r IServiceDiscoveryClient, options *CacheOptions) Cache
type CacheOptions ¶ added in v1.6.6
type DefaultServiceInstance ¶
type DefaultServiceInstance struct { Id string ServiceName string Host string Port uint64 ClusterName string GroupName string Tags []string Enable bool Healthy bool Weight float64 Metadata map[string]string }
DefaultServiceInstance the default implementation of ServiceInstance or change the ServiceInstance to be struct???
func (*DefaultServiceInstance) GetClusterName ¶
func (d *DefaultServiceInstance) GetClusterName() string
func (*DefaultServiceInstance) GetGroupName ¶
func (d *DefaultServiceInstance) GetGroupName() string
func (*DefaultServiceInstance) GetHost ¶
func (d *DefaultServiceInstance) GetHost() string
GetHost will return the hostname
func (*DefaultServiceInstance) GetId ¶
func (d *DefaultServiceInstance) GetId() string
GetId will return this instance's id. It should be unique.
func (*DefaultServiceInstance) GetMetadata ¶
func (d *DefaultServiceInstance) GetMetadata() map[string]string
GetMetadata will return the metadata, it will never return nil
func (*DefaultServiceInstance) GetPort ¶
func (d *DefaultServiceInstance) GetPort() uint64
GetPort will return the port.
func (*DefaultServiceInstance) GetServiceName ¶
func (d *DefaultServiceInstance) GetServiceName() string
GetServiceName will return the serviceName
func (*DefaultServiceInstance) GetTags ¶
func (d *DefaultServiceInstance) GetTags() []string
func (*DefaultServiceInstance) GetWeight ¶
func (d *DefaultServiceInstance) GetWeight() float64
func (*DefaultServiceInstance) IsEnable ¶
func (d *DefaultServiceInstance) IsEnable() bool
IsEnable will return the enable status of this instance
func (*DefaultServiceInstance) IsHealthy ¶
func (d *DefaultServiceInstance) IsHealthy() bool
IsHealthy will return the value represent the instance whether healthy or not
type Event ¶ added in v1.6.6
type Event struct { // Id is registry id Id string // Type defines type of event Type EventType // Timestamp is event timestamp Timestamp time.Time // Service is registry service Service *Service }
Event is registry event
type ISelector ¶ added in v1.6.7
type ISelector interface {
Select(serviceName string) (ServiceInstance, error)
}
type IServiceDiscovery ¶
type IServiceDiscovery interface { GetName() string Register() error Update() error Unregister() error GetHealthyInstances(serviceName string) []ServiceInstance GetAllInstances(serviceName string) []ServiceInstance Destroy() error Watch(opts ...WatchOption) (Watcher, error) GetAllServices() ([]*Service, error) }
type IServiceDiscoveryClient ¶ added in v1.6.6
type Next ¶ added in v1.6.6
type Next func() (ServiceInstance, error)
type Option ¶ added in v1.6.6
type Option func(o *CacheOptions)
type Selector ¶ added in v1.6.6
type Selector struct { DiscoveryCache Cache //service discovery cache Strategy Strategy //load balancing strategy }
func NewSelector ¶ added in v1.6.7
type Service ¶ added in v1.6.6
type Service struct { Name string `json:"name"` Version string `json:"version"` Metadata map[string]string `json:"metadata"` Nodes []ServiceInstance `json:"nodes"` }
func CopyService ¶ added in v1.6.6
CopyService make a copy of service
type ServiceInstance ¶
type ServiceInstance interface { // GetId will return this instance's id. It should be unique. GetId() string // GetServiceName will return the serviceName GetServiceName() string // GetHost will return the hostname GetHost() string // GetPort will return the port. GetPort() uint64 GetWeight() float64 GetTags() []string GetClusterName() string GetGroupName() string // IsEnable will return the enable status of this instance IsEnable() bool // IsHealthy will return the value represent the instance whether healthy or not IsHealthy() bool // GetMetadata will return the metadata GetMetadata() map[string]string }
ServiceInstance is the model class of an instance of a service, which is used for service registration and discovery.
type Strategy ¶ added in v1.6.6
type Strategy interface { //Next(serviceName string) (ServiceInstance, error) Next(instanceList []ServiceInstance) (ServiceInstance, error) }
Balancer yields endpoints according to some heuristic.
type UriParser ¶ added in v1.6.6
type UriParser struct {
// contains filtered or unexported fields
}
func NewUriParser ¶ added in v1.6.6
func (*UriParser) GetUriEntry ¶ added in v1.6.6
type WatchOption ¶ added in v1.6.6
type WatchOption func(*WatchOptions)