gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/network/resolver/registry/registry.go (about) 1 // Package registry resolves names using the go-micro registry 2 package registry 3 4 import ( 5 "gitee.com/liuxuezhan/go-micro-v1.18.0/network/resolver" 6 "gitee.com/liuxuezhan/go-micro-v1.18.0/registry" 7 ) 8 9 // Resolver is a registry network resolver 10 type Resolver struct { 11 // Registry is the registry to use otherwise we use the defaul 12 Registry registry.Registry 13 } 14 15 // Resolve assumes ID is a domain name e.g micro.mu 16 func (r *Resolver) Resolve(name string) ([]*resolver.Record, error) { 17 reg := r.Registry 18 if reg == nil { 19 reg = registry.DefaultRegistry 20 } 21 22 services, err := reg.GetService(name) 23 if err != nil { 24 return nil, err 25 } 26 27 var records []*resolver.Record 28 29 for _, service := range services { 30 for _, node := range service.Nodes { 31 records = append(records, &resolver.Record{ 32 Address: node.Address, 33 }) 34 } 35 } 36 37 return records, nil 38 }