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 ¶
type Cache interface { GetService(serviceName string) (*Service, error) // stop the cache of watcher Stop() }
func NewCache ¶
func NewCache(r IServiceDiscoveryClient, options *CacheOptions) Cache
type CacheOptions ¶
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 ¶
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 ¶
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 ¶
type Next ¶
type Next func() (ServiceInstance, error)
type Option ¶
type Option func(o *CacheOptions)
type Selector ¶
type Selector struct { DiscoveryCache Cache //service discovery cache Strategy Strategy //load balancing strategy }
func NewSelector ¶
type Service ¶
type Service struct { Name string `json:"name"` Version string `json:"version"` Metadata map[string]string `json:"metadata"` Nodes []ServiceInstance `json:"nodes"` }
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 ¶
type Strategy interface { //Next(serviceName string) (ServiceInstance, error) Next(instanceList []ServiceInstance) (ServiceInstance, error) }
Balancer yields endpoints according to some heuristic.
type UriParser ¶
type UriParser struct {
// contains filtered or unexported fields
}
func NewUriParser ¶
func (*UriParser) GetUriEntry ¶
type WatchOption ¶
type WatchOption func(*WatchOptions)