Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Discovery ¶
type Discovery interface {
// GetService gets the service instance by serviceName.
// if the args is id, then get the only service instance by id.
// if the args is name, then may get the many service instance by name, load balancing is variable.
GetService(ctx context.Context, serviceName string) ([]*ServiceInstance, error)
// Watch creates the Watcher instance.
Watch(ctx context.Context, serviceName string) (Watcher, error)
}
Discovery is the interface that wraps the basic GetService and Watch method.
type Registrar ¶
type Registrar interface {
// Register registers the service instance to registry center.
Register(ctx context.Context, service *ServiceInstance) error
// Deregister deregisters the service instance from registry center.
Deregister(ctx context.Context, service *ServiceInstance) error
}
Registrar is the interface that wraps the basic Register and Deregister method.
type ServiceInstance ¶
type ServiceInstance struct {
// the id of service in the registry center: etcd, consul, zookeeper etc.
ID string `json:"id"`
// service name
Name string `json:"name"`
// service version
Version string `json:"version"`
// service metadata
Metadata map[string]string `json:"metadata"`
//http://127.0.0.1:8080
//grpc://127.0.0.1:9000
Endpoints []string `json:"endpoints"`
}
ServiceInstance is the service instance for registry center.
type Watcher ¶
type Watcher interface {
// Next gets the service instance, it will return the service instance in the following cases:
// 1. the first time to watch, if the service instance list is not empty, then return the service instance list.
// 2. if the service instance changed, then return the service instance list.
// 3. if the above two cases are not satisfied, it will block until the context deadline or cancel.
Next() ([]*ServiceInstance, error)
// active stop watching
Stop() error
}
Watcher is the interface that wraps the basic Next and Stop method.
Click to show internal directories.
Click to hide internal directories.