You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

37 lines
912 B

package discovery
import (
"context"
"google.golang.org/grpc/resolver"
)
type Registry interface {
// Registry server instance
Registry(ctx context.Context, server Server) (err error)
}
type GrpcResolver interface {
DialUrl(serviceName string) string
// Resolver get grpc dial resolver
Resolver() (builder resolver.Builder, err error)
}
type Resolver interface {
// ResolveAll get service all instance
ResolveAll(ctx context.Context, serviceName string) (servers []Server, err error)
// Watch when service instance change, send current all instances to channel
Watch(ctx context.Context, serviceName string) (ch chan []Server, err error)
}
type Discovery interface {
Registry
Resolver
GrpcResolver
}
// Server registry format
type Server struct {
Name string `json:"name"`
Addr string `json:"addr"` // 地址
Attrs map[string]string `json:"attrs"` // attributes
}