registry/service: pass domain options via rpc (#1719)

* registry/service: regenerate proto

* registry/service: pass domain in proto request options

* registry/service: stop defaulting metadata

* registry: add default domain const; remove from implementations

* registry/memory: fix typo
This commit is contained in:
ben-toogood 2020-06-19 10:34:12 +01:00 committed by GitHub
parent c16f4b741c
commit 58c6bbbf6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1073 additions and 1258 deletions

View File

@ -20,9 +20,7 @@ import (
"github.com/micro/go-micro/v2/util/mdns" "github.com/micro/go-micro/v2/util/mdns"
) )
var ( const (
// use a .micro tld rather than .local by default
defaultDomain = "micro"
// every service is written to the global domain so * domain queries work, e.g. // every service is written to the global domain so * domain queries work, e.g.
// calling mdns.List(registry.ListDomain("*")) will list the services across all // calling mdns.List(registry.ListDomain("*")) will list the services across all
// domains // domains
@ -149,7 +147,7 @@ func newRegistry(opts ...Option) Registry {
} }
// set the domain // set the domain
defaultDomain := defaultDomain defaultDomain := DefaultDomain
d, ok := options.Context.Value("mdns.domain").(string) d, ok := options.Context.Value("mdns.domain").(string)
if ok { if ok {

View File

@ -14,7 +14,6 @@ import (
var ( var (
sendEventTime = 10 * time.Millisecond sendEventTime = 10 * time.Millisecond
ttlPruneTime = time.Second ttlPruneTime = time.Second
defaultDomain = "micro"
) )
type node struct { type node struct {
@ -60,7 +59,7 @@ func NewRegistry(opts ...registry.Option) registry.Registry {
reg := &Registry{ reg := &Registry{
options: options, options: options,
records: map[string]services{defaultDomain: records}, records: map[string]services{registry.DefaultDomain: records},
watchers: make(map[string]*Watcher), watchers: make(map[string]*Watcher),
} }
@ -129,7 +128,7 @@ func (m *Registry) Init(opts ...registry.Option) error {
defer m.Unlock() defer m.Unlock()
// get the existing services from the records // get the existing services from the records
srvs, ok := m.records[defaultDomain] srvs, ok := m.records[registry.DefaultDomain]
if !ok { if !ok {
srvs = make(services) srvs = make(services)
} }
@ -151,7 +150,7 @@ func (m *Registry) Init(opts ...registry.Option) error {
} }
// set the services in the registry // set the services in the registry
m.records[defaultDomain] = srvs m.records[registry.DefaultDomain] = srvs
return nil return nil
} }
@ -169,7 +168,7 @@ func (m *Registry) Register(s *registry.Service, opts ...registry.RegisterOption
o(&options) o(&options)
} }
if len(options.Domain) == 0 { if len(options.Domain) == 0 {
options.Domain = defaultDomain options.Domain = registry.DefaultDomain
} }
// get the services for this domain from the registry // get the services for this domain from the registry
@ -243,7 +242,7 @@ func (m *Registry) Deregister(s *registry.Service, opts ...registry.DeregisterOp
o(&options) o(&options)
} }
if len(options.Domain) == 0 { if len(options.Domain) == 0 {
options.Domain = defaultDomain options.Domain = registry.DefaultDomain
} }
// if the domain doesn't exist, there is nothing to deregister // if the domain doesn't exist, there is nothing to deregister
@ -307,7 +306,7 @@ func (m *Registry) GetService(name string, opts ...registry.GetOption) ([]*regis
o(&options) o(&options)
} }
if len(options.Domain) == 0 { if len(options.Domain) == 0 {
options.Domain = defaultDomain options.Domain = registry.DefaultDomain
} }
// if it's a wildcard domain, return from all domains // if it's a wildcard domain, return from all domains
@ -365,7 +364,7 @@ func (m *Registry) ListServices(opts ...registry.ListOption) ([]*registry.Servic
o(&options) o(&options)
} }
if len(options.Domain) == 0 { if len(options.Domain) == 0 {
options.Domain = defaultDomain options.Domain = registry.DefaultDomain
} }
// if it's a wildcard domain, list from all domains // if it's a wildcard domain, list from all domains
@ -412,7 +411,7 @@ func (m *Registry) Watch(opts ...registry.WatchOption) (registry.Watcher, error)
o(&wo) o(&wo)
} }
if len(wo.Domain) == 0 { if len(wo.Domain) == 0 {
wo.Domain = defaultDomain wo.Domain = registry.DefaultDomain
} }
// construct the watcher // construct the watcher

View File

@ -8,6 +8,8 @@ import (
const ( const (
// WildcardDomain indicates any domain // WildcardDomain indicates any domain
WildcardDomain = "*" WildcardDomain = "*"
// DefaultDomain to use if none was provided in options
DefaultDomain = "micro"
) )
var ( var (

View File

@ -320,6 +320,7 @@ func (m *Value) GetValues() []*Value {
// Options are registry options // Options are registry options
type Options struct { type Options struct {
Ttl int64 `protobuf:"varint,1,opt,name=ttl,proto3" json:"ttl,omitempty"` Ttl int64 `protobuf:"varint,1,opt,name=ttl,proto3" json:"ttl,omitempty"`
Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -357,6 +358,13 @@ func (m *Options) GetTtl() int64 {
return 0 return 0
} }
func (m *Options) GetDomain() string {
if m != nil {
return m.Domain
}
return ""
}
// Result is returns by the watcher // Result is returns by the watcher
type Result struct { type Result struct {
Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
@ -446,6 +454,7 @@ var xxx_messageInfo_EmptyResponse proto.InternalMessageInfo
type GetRequest struct { type GetRequest struct {
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
Options *Options `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -483,6 +492,13 @@ func (m *GetRequest) GetService() string {
return "" return ""
} }
func (m *GetRequest) GetOptions() *Options {
if m != nil {
return m.Options
}
return nil
}
type GetResponse struct { type GetResponse struct {
Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -523,6 +539,7 @@ func (m *GetResponse) GetServices() []*Service {
} }
type ListRequest struct { type ListRequest struct {
Options *Options `protobuf:"bytes,1,opt,name=options,proto3" json:"options,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -553,6 +570,13 @@ func (m *ListRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_ListRequest proto.InternalMessageInfo var xxx_messageInfo_ListRequest proto.InternalMessageInfo
func (m *ListRequest) GetOptions() *Options {
if m != nil {
return m.Options
}
return nil
}
type ListResponse struct { type ListResponse struct {
Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -595,6 +619,7 @@ func (m *ListResponse) GetServices() []*Service {
type WatchRequest struct { type WatchRequest struct {
// service is optional // service is optional
Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
Options *Options `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -632,6 +657,13 @@ func (m *WatchRequest) GetService() string {
return "" return ""
} }
func (m *WatchRequest) GetOptions() *Options {
if m != nil {
return m.Options
}
return nil
}
// Event is registry event // Event is registry event
type Event struct { type Event struct {
// Event Id // Event Id
@ -725,50 +757,51 @@ func init() {
} }
var fileDescriptor_3f5817c11f323eb6 = []byte{ var fileDescriptor_3f5817c11f323eb6 = []byte{
// 675 bytes of a gzipped FileDescriptorProto // 700 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xdd, 0x6e, 0xd3, 0x4c, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xed, 0x6a, 0xd4, 0x40,
0x10, 0x8d, 0xed, 0xfc, 0x4e, 0xda, 0x7e, 0xfd, 0x46, 0x08, 0x8c, 0x5b, 0x20, 0xb2, 0x54, 0x14, 0x14, 0xdd, 0x24, 0xfb, 0x79, 0xb7, 0xad, 0x75, 0x10, 0x8d, 0xb1, 0xea, 0x12, 0x28, 0xac, 0x82,
0x90, 0x48, 0xaa, 0x50, 0x21, 0x7e, 0xae, 0x10, 0x0d, 0x95, 0x50, 0x0b, 0x62, 0xf9, 0xbb, 0x36, 0xbb, 0x65, 0x5b, 0xc4, 0x8f, 0x5f, 0xd2, 0xae, 0x05, 0x69, 0x15, 0xc7, 0xaf, 0x3f, 0x22, 0xc4,
0xf1, 0xa8, 0x58, 0x24, 0xb6, 0xd9, 0xdd, 0x46, 0xca, 0x3b, 0x20, 0xf1, 0x04, 0xbc, 0x0d, 0x4f, 0xcd, 0xa5, 0x06, 0x37, 0x99, 0x38, 0x33, 0x5d, 0xd8, 0x77, 0x10, 0x7c, 0x02, 0xdf, 0xc6, 0xa7,
0xc1, 0xd3, 0xa0, 0x5d, 0xef, 0x26, 0xa9, 0xea, 0x04, 0xa4, 0xc2, 0xdd, 0xcc, 0xee, 0x39, 0xb3, 0xf0, 0x69, 0x64, 0x26, 0x93, 0x6c, 0x4a, 0xb3, 0x4b, 0xa1, 0xf6, 0xdf, 0x9d, 0xe4, 0x9c, 0x33,
0xb3, 0x67, 0xce, 0xda, 0xb0, 0xc7, 0xe9, 0x34, 0x11, 0x92, 0xcf, 0xfa, 0x82, 0xf8, 0x34, 0x19, 0x77, 0xce, 0x9c, 0x9b, 0x5d, 0xd8, 0xe6, 0x78, 0x12, 0x09, 0xc9, 0xe7, 0x43, 0x81, 0x7c, 0x16,
0x51, 0x3f, 0xe7, 0x99, 0xcc, 0xfa, 0x76, 0xb9, 0xa7, 0x53, 0xfc, 0xff, 0x34, 0xeb, 0x4d, 0x92, 0x4d, 0x70, 0x98, 0x72, 0x26, 0xd9, 0x30, 0x7f, 0x3c, 0xd0, 0x4b, 0x72, 0xfd, 0x84, 0x0d, 0xe2,
0x11, 0xcf, 0x7a, 0x76, 0x23, 0xfc, 0xe9, 0x42, 0xe3, 0x4d, 0xc1, 0x41, 0x84, 0x6a, 0x1a, 0x4d, 0x68, 0xc2, 0xd9, 0x20, 0x7f, 0xe1, 0xff, 0xb5, 0xa1, 0xf5, 0x2e, 0xe3, 0x10, 0x02, 0xf5, 0x24,
0xc8, 0x77, 0x3a, 0x4e, 0xb7, 0xc5, 0x74, 0x8c, 0x3e, 0x34, 0xa6, 0xc4, 0x45, 0x92, 0xa5, 0xbe, 0x88, 0xd1, 0xb5, 0x7a, 0x56, 0xbf, 0x43, 0x75, 0x4d, 0x5c, 0x68, 0xcd, 0x90, 0x8b, 0x88, 0x25,
0xab, 0x97, 0x6d, 0x8a, 0x87, 0xd0, 0x9c, 0x90, 0x8c, 0xe2, 0x48, 0x46, 0xbe, 0xd7, 0xf1, 0xba, 0xae, 0xad, 0x1f, 0xe7, 0x4b, 0x72, 0x00, 0xed, 0x18, 0x65, 0x10, 0x06, 0x32, 0x70, 0x9d, 0x9e,
0xed, 0x41, 0xb7, 0x77, 0xa1, 0x7e, 0xcf, 0xd4, 0xee, 0x9d, 0x18, 0xe8, 0x30, 0x95, 0x7c, 0xc6, 0xd3, 0xef, 0x8e, 0xfa, 0x83, 0x73, 0xfa, 0x03, 0xa3, 0x3d, 0x38, 0x36, 0xd0, 0x71, 0x22, 0xf9,
0xe6, 0x4c, 0x7c, 0x04, 0x2d, 0x4a, 0xe3, 0x3c, 0x4b, 0x52, 0x29, 0xfc, 0xaa, 0x2e, 0xb3, 0x53, 0x9c, 0x16, 0x4c, 0xf2, 0x14, 0x3a, 0x98, 0x84, 0x29, 0x8b, 0x12, 0x29, 0xdc, 0xba, 0x96, 0xb9,
0x52, 0x66, 0x68, 0x30, 0x6c, 0x81, 0xc6, 0x7b, 0x50, 0x4b, 0xb3, 0x98, 0x84, 0x5f, 0xd3, 0xb4, 0x53, 0x21, 0x33, 0x36, 0x18, 0xba, 0x40, 0x93, 0x47, 0xd0, 0x48, 0x58, 0x88, 0xc2, 0x6d, 0x68,
0x6b, 0x25, 0xb4, 0x97, 0x59, 0x4c, 0xac, 0x40, 0xe1, 0x01, 0x34, 0xb2, 0x5c, 0x26, 0x59, 0x2a, 0xda, 0xad, 0x0a, 0xda, 0x6b, 0x16, 0x22, 0xcd, 0x50, 0x64, 0x0f, 0x5a, 0x2c, 0x95, 0x11, 0x4b,
0xfc, 0x7a, 0xc7, 0xe9, 0xb6, 0x07, 0x41, 0x09, 0xe1, 0x55, 0x81, 0x60, 0x16, 0x1a, 0x3c, 0x81, 0x84, 0xdb, 0xec, 0x59, 0xfd, 0xee, 0xc8, 0xab, 0x20, 0xbc, 0xc9, 0x10, 0x34, 0x87, 0x7a, 0xcf,
0xcd, 0x73, 0xad, 0xe3, 0x36, 0x78, 0x9f, 0x69, 0x66, 0x34, 0x52, 0x21, 0x5e, 0x81, 0xda, 0x34, 0x61, 0xfd, 0x4c, 0xeb, 0x64, 0x13, 0x9c, 0xef, 0x38, 0x37, 0x1e, 0xa9, 0x92, 0xdc, 0x80, 0xc6,
0x1a, 0x9f, 0x91, 0x11, 0xa8, 0x48, 0x1e, 0xbb, 0x0f, 0x9d, 0xf0, 0x87, 0x03, 0x55, 0xd5, 0x02, 0x2c, 0x98, 0x9e, 0xa2, 0x31, 0x28, 0x5b, 0x3c, 0xb3, 0x9f, 0x58, 0xfe, 0x1f, 0x0b, 0xea, 0xaa,
0x6e, 0x81, 0x9b, 0xc4, 0x86, 0xe3, 0x26, 0xb1, 0x52, 0x35, 0x8a, 0x63, 0x4e, 0x42, 0x58, 0x55, 0x05, 0xb2, 0x01, 0x76, 0x14, 0x1a, 0x8e, 0x1d, 0x85, 0xca, 0xd5, 0x20, 0x0c, 0x39, 0x0a, 0x91,
0x4d, 0xaa, 0x66, 0x90, 0x67, 0x5c, 0xfa, 0x5e, 0xc7, 0xe9, 0x7a, 0x4c, 0xc7, 0xf8, 0x74, 0x49, 0xbb, 0x6a, 0x96, 0xea, 0x0e, 0x52, 0xc6, 0xa5, 0xeb, 0xf4, 0xac, 0xbe, 0x43, 0x75, 0x4d, 0x5e,
0xe9, 0x42, 0xa2, 0xbd, 0x15, 0x77, 0x5d, 0x25, 0xf3, 0xe5, 0xae, 0xf1, 0xd5, 0x85, 0xa6, 0x1d, 0x94, 0x9c, 0xce, 0x2c, 0xda, 0x5e, 0x72, 0xd6, 0x65, 0x36, 0x5f, 0xee, 0x18, 0x3f, 0x6d, 0x68,
0x40, 0xa9, 0x49, 0x06, 0xd0, 0xe0, 0xf4, 0xe5, 0x8c, 0x84, 0xd4, 0xe4, 0xf6, 0xc0, 0x2f, 0xe9, 0xe7, 0x17, 0x50, 0x19, 0x92, 0x11, 0xb4, 0x38, 0xfe, 0x38, 0x45, 0x21, 0x35, 0xb9, 0x3b, 0x72,
0xef, 0xbd, 0xaa, 0xc7, 0x2c, 0x10, 0x0f, 0xa0, 0xc9, 0x49, 0xe4, 0x59, 0x2a, 0x48, 0x5f, 0x76, 0x2b, 0xfa, 0xfb, 0xa8, 0xf4, 0x68, 0x0e, 0x24, 0x7b, 0xd0, 0xe6, 0x28, 0x52, 0x96, 0x08, 0xd4,
0x1d, 0x69, 0x8e, 0xc4, 0xe1, 0x05, 0x29, 0xee, 0xac, 0x71, 0xcb, 0xbf, 0x91, 0x23, 0x82, 0x9a, 0x87, 0x5d, 0x45, 0x2a, 0x90, 0x64, 0x7c, 0xce, 0x8a, 0x07, 0x2b, 0xd2, 0x72, 0x35, 0x76, 0x04,
0x6e, 0xab, 0x54, 0x0a, 0x84, 0xaa, 0x9c, 0xe5, 0x96, 0xa5, 0x63, 0xdc, 0x87, 0xba, 0x66, 0x0b, 0xd0, 0xd0, 0x6d, 0x55, 0x5a, 0x41, 0xa0, 0x2e, 0xe7, 0x69, 0xce, 0xd2, 0x35, 0xd9, 0x81, 0xa6,
0xf3, 0x4e, 0x56, 0x5f, 0xd4, 0xe0, 0xc2, 0x1d, 0x68, 0x18, 0x27, 0xaa, 0xce, 0xa4, 0x1c, 0xeb, 0x66, 0x0b, 0x33, 0x27, 0xcb, 0x0f, 0x6a, 0x70, 0xfe, 0x2e, 0xb4, 0x4c, 0x12, 0x55, 0x67, 0x52,
0x33, 0x3c, 0xa6, 0xc2, 0x50, 0x42, 0x9d, 0x91, 0x38, 0x1b, 0x4b, 0xbc, 0x0a, 0xf5, 0x68, 0xa4, 0x4e, 0xf5, 0x1e, 0x0e, 0x55, 0x25, 0xb9, 0x09, 0xcd, 0x90, 0xc5, 0x41, 0x94, 0x4f, 0xa4, 0x59,
0x60, 0xa6, 0x05, 0x93, 0x29, 0xab, 0x9b, 0xef, 0x80, 0x99, 0x47, 0xb0, 0xfa, 0x65, 0x32, 0x0b, 0xf9, 0x12, 0x9a, 0x14, 0xc5, 0xe9, 0x54, 0x2a, 0x44, 0x30, 0x51, 0x74, 0xd3, 0x9a, 0x59, 0xa9,
0xc5, 0x5d, 0x68, 0xc9, 0x64, 0x42, 0x42, 0x46, 0x93, 0xdc, 0xf8, 0x6f, 0xb1, 0x10, 0xfe, 0x07, 0x11, 0x30, 0xdf, 0x07, 0x73, 0x4f, 0xde, 0xf2, 0x89, 0xa5, 0x39, 0x94, 0x6c, 0x41, 0x47, 0x46,
0x9b, 0xc3, 0x49, 0x2e, 0x67, 0xcc, 0x8c, 0x22, 0xbc, 0x0d, 0x70, 0x44, 0x92, 0x99, 0x71, 0xfa, 0x31, 0x0a, 0x19, 0xc4, 0xa9, 0xc9, 0xe5, 0xe2, 0x81, 0x7f, 0x0d, 0xd6, 0xc7, 0x71, 0x2a, 0xe7,
0x8b, 0x23, 0x8b, 0x5e, 0x6c, 0x1a, 0x0e, 0xa1, 0xad, 0x71, 0x66, 0x82, 0x0f, 0xa0, 0x69, 0x76, 0xd4, 0x5c, 0x91, 0xff, 0x19, 0xe0, 0x10, 0x25, 0x35, 0xd7, 0xec, 0x2e, 0xb6, 0xcc, 0x7a, 0x29,
0x84, 0xef, 0x68, 0x39, 0xd6, 0x35, 0x37, 0xc7, 0x86, 0x9b, 0xd0, 0x3e, 0x4e, 0x84, 0x3d, 0x2f, 0x64, 0x4b, 0xf3, 0x68, 0x5f, 0x78, 0x1e, 0xfd, 0x31, 0x74, 0xb5, 0xba, 0xc9, 0xc3, 0x63, 0x68,
0x7c, 0x0e, 0x1b, 0x45, 0x7a, 0xc9, 0xb2, 0x5d, 0xd8, 0xf8, 0x10, 0xc9, 0xd1, 0xa7, 0xdf, 0xdf, 0x1b, 0x3d, 0xe1, 0x5a, 0xda, 0xdc, 0x55, 0x47, 0x2a, 0xb0, 0xfe, 0x3e, 0x74, 0x8f, 0x22, 0x51,
0xe3, 0xbb, 0x03, 0xb5, 0xe1, 0x94, 0x52, 0x79, 0xe1, 0x35, 0xef, 0x2f, 0xcd, 0x7c, 0x6b, 0xb0, 0x74, 0x59, 0xea, 0xc5, 0xba, 0x78, 0x2f, 0x2f, 0x61, 0x2d, 0x13, 0xb9, 0x64, 0x33, 0x5f, 0x60,
0x5b, 0x66, 0x48, 0xc5, 0x7b, 0x3b, 0xcb, 0xc9, 0x38, 0x62, 0xad, 0xd4, 0xcb, 0xe3, 0xab, 0xfe, 0xed, 0x53, 0x20, 0x27, 0xdf, 0xae, 0xca, 0xb3, 0xdf, 0x16, 0x34, 0xc6, 0x33, 0x4c, 0xe4, 0xb9,
0xf1, 0xf8, 0xee, 0xf6, 0xa1, 0x35, 0x3f, 0x06, 0x01, 0xea, 0xcf, 0x38, 0x45, 0x92, 0xb6, 0x2b, 0xef, 0xd0, 0x4e, 0x29, 0xad, 0x1b, 0xa3, 0xad, 0xaa, 0x51, 0x52, 0xbc, 0xf7, 0xf3, 0x14, 0x4d,
0x2a, 0x3e, 0xa4, 0x31, 0x49, 0xda, 0x76, 0x54, 0xfc, 0x2e, 0x8f, 0xd5, 0xba, 0x3b, 0xf8, 0xe6, 0x96, 0x57, 0x86, 0xa1, 0x1c, 0xb0, 0xfa, 0x85, 0x03, 0xf6, 0x70, 0x08, 0x9d, 0x62, 0x1b, 0x02,
0x41, 0x93, 0x99, 0x72, 0x78, 0xa2, 0xa7, 0x69, 0xff, 0x04, 0x37, 0x4a, 0x0e, 0x5c, 0x0c, 0x3b, 0xd0, 0xdc, 0xe7, 0x18, 0x48, 0xdc, 0xac, 0xa9, 0xfa, 0x00, 0xa7, 0x28, 0x71, 0xd3, 0x52, 0xf5,
0xb8, 0xb9, 0x6a, 0xdb, 0x58, 0xa3, 0x82, 0x2f, 0x6c, 0x69, 0xe2, 0xb8, 0xa6, 0xfb, 0xa0, 0x53, 0x87, 0x34, 0x54, 0xcf, 0xed, 0xd1, 0x2f, 0x07, 0xda, 0xd4, 0xc8, 0x91, 0x63, 0x9d, 0xb7, 0xfc,
0x26, 0xd6, 0x39, 0x9b, 0x55, 0xf0, 0x18, 0xe0, 0x90, 0xf8, 0xdf, 0xaa, 0xf6, 0xba, 0x30, 0x8e, 0x37, 0xec, 0x6e, 0xc5, 0x86, 0x8b, 0x38, 0x7a, 0xf7, 0x96, 0xbd, 0x36, 0xe1, 0xad, 0x91, 0x57,
0xa1, 0x08, 0x2c, 0xbb, 0xcb, 0x92, 0xd1, 0x82, 0x5b, 0x2b, 0xf7, 0xe7, 0x25, 0x8f, 0xa0, 0xa6, 0xb9, 0x34, 0x72, 0xb2, 0xa2, 0x7b, 0xaf, 0x57, 0x65, 0xd6, 0x99, 0x41, 0xa8, 0x91, 0x23, 0x80,
0x3d, 0x84, 0x65, 0xd8, 0x65, 0x77, 0x05, 0xd7, 0x4b, 0x00, 0xc5, 0x5b, 0x0e, 0x2b, 0xfb, 0xce, 0x03, 0xe4, 0xff, 0x4b, 0xed, 0x6d, 0x16, 0x37, 0x43, 0x11, 0xa4, 0xea, 0x2c, 0xa5, 0x50, 0x7b,
0xc7, 0xba, 0xfe, 0x4d, 0xdf, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0xc6, 0xa5, 0x5a, 0xc9, 0xcf, 0xf7, 0x97, 0xbe, 0x2f, 0x24, 0x0f, 0xa1, 0xa1, 0x93, 0x47, 0xaa, 0xb0, 0xe5, 0x4c, 0x7a, 0xb7,
0x07, 0x00, 0x00, 0x2b, 0x00, 0xd9, 0xd7, 0xc6, 0xaf, 0xed, 0x58, 0x5f, 0x9b, 0xfa, 0x0f, 0xc6, 0xee, 0xbf, 0x00,
0x00, 0x00, 0xff, 0xff, 0xef, 0xac, 0x43, 0xb5, 0x89, 0x08, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.

View File

@ -12,12 +12,12 @@ service Registry {
// Service represents a go-micro service // Service represents a go-micro service
message Service { message Service {
string name = 1; string name = 1;
string version = 2; string version = 2;
map<string,string> metadata = 3; map<string,string> metadata = 3;
repeated Endpoint endpoints = 4; repeated Endpoint endpoints = 4;
repeated Node nodes = 5; repeated Node nodes = 5;
Options options = 6; Options options = 6;
} }
// Node represents the node the service is on // Node represents the node the service is on
@ -45,7 +45,8 @@ message Value {
// Options are registry options // Options are registry options
message Options { message Options {
int64 ttl = 1; int64 ttl = 1;
string domain = 2;
} }
// Result is returns by the watcher // Result is returns by the watcher
@ -59,6 +60,7 @@ message EmptyResponse {}
message GetRequest { message GetRequest {
string service = 1; string service = 1;
Options options = 2;
} }
message GetResponse { message GetResponse {
@ -66,7 +68,7 @@ message GetResponse {
} }
message ListRequest { message ListRequest {
// TODO: filtering Options options = 1;
} }
message ListResponse { message ListResponse {
@ -76,23 +78,24 @@ message ListResponse {
message WatchRequest { message WatchRequest {
// service is optional // service is optional
string service = 1; string service = 1;
Options options = 2;
} }
// EventType defines the type of event // EventType defines the type of event
enum EventType { enum EventType {
Create = 0; Create = 0;
Delete = 1; Delete = 1;
Update = 2; Update = 2;
} }
// Event is registry event // Event is registry event
message Event { message Event {
// Event Id // Event Id
string id = 1; string id = 1;
// type of event // type of event
EventType type = 2; EventType type = 2;
// unix timestamp of event // unix timestamp of event
int64 timestamp = 3; int64 timestamp = 3;
// service entry // service entry
Service service = 4; Service service = 4;
} }

View File

@ -78,17 +78,14 @@ func (s *serviceRegistry) Register(srv *registry.Service, opts ...registry.Regis
options.Context = context.TODO() options.Context = context.TODO()
} }
// encode srv into protobuf and pack Register TTL into it // encode srv into protobuf and pack TTL and domain into it
pbSrv := ToProto(srv) pbSrv := ToProto(srv)
pbSrv.Options.Ttl = int64(options.TTL.Seconds()) pbSrv.Options.Ttl = int64(options.TTL.Seconds())
pbSrv.Options.Domain = options.Domain
// register the service // register the service
_, err := s.client.Register(options.Context, pbSrv, s.callOpts()...) _, err := s.client.Register(options.Context, pbSrv, s.callOpts()...)
if err != nil { return err
return err
}
return nil
} }
func (s *serviceRegistry) Deregister(srv *registry.Service, opts ...registry.DeregisterOption) error { func (s *serviceRegistry) Deregister(srv *registry.Service, opts ...registry.DeregisterOption) error {
@ -100,12 +97,13 @@ func (s *serviceRegistry) Deregister(srv *registry.Service, opts ...registry.Der
options.Context = context.TODO() options.Context = context.TODO()
} }
// encode srv into protobuf and pack domain into it
pbSrv := ToProto(srv)
pbSrv.Options.Domain = options.Domain
// deregister the service // deregister the service
_, err := s.client.Deregister(options.Context, ToProto(srv), s.callOpts()...) _, err := s.client.Deregister(options.Context, pbSrv, s.callOpts()...)
if err != nil { return err
return err
}
return nil
} }
func (s *serviceRegistry) GetService(name string, opts ...registry.GetOption) ([]*registry.Service, error) { func (s *serviceRegistry) GetService(name string, opts ...registry.GetOption) ([]*registry.Service, error) {
@ -118,7 +116,7 @@ func (s *serviceRegistry) GetService(name string, opts ...registry.GetOption) ([
} }
rsp, err := s.client.GetService(options.Context, &pb.GetRequest{ rsp, err := s.client.GetService(options.Context, &pb.GetRequest{
Service: name, Service: name, Options: &pb.Options{Domain: options.Domain},
}, s.callOpts()...) }, s.callOpts()...)
if verr, ok := err.(*errors.Error); ok && verr.Code == 404 { if verr, ok := err.(*errors.Error); ok && verr.Code == 404 {
@ -143,7 +141,8 @@ func (s *serviceRegistry) ListServices(opts ...registry.ListOption) ([]*registry
options.Context = context.TODO() options.Context = context.TODO()
} }
rsp, err := s.client.ListServices(options.Context, &pb.ListRequest{}, s.callOpts()...) req := &pb.ListRequest{Options: &pb.Options{Domain: options.Domain}}
rsp, err := s.client.ListServices(options.Context, req, s.callOpts()...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -166,7 +165,7 @@ func (s *serviceRegistry) Watch(opts ...registry.WatchOption) (registry.Watcher,
} }
stream, err := s.client.Watch(options.Context, &pb.WatchRequest{ stream, err := s.client.Watch(options.Context, &pb.WatchRequest{
Service: options.Service, Service: options.Service, Options: &pb.Options{Domain: options.Domain},
}, s.callOpts()...) }, s.callOpts()...)
if err != nil { if err != nil {

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-micro. DO NOT EDIT. // Code generated by protoc-gen-micro. DO NOT EDIT.
// source: github.com/micro/go-micro/store/service/proto/store.proto // source: store/service/proto/store.proto
package go_micro_store package go_micro_store