Skip to content

Commit

Permalink
支持获取全部
Browse files Browse the repository at this point in the history
  • Loading branch information
hsyan2008 committed Jun 11, 2021
1 parent 439061d commit abd5c69
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions service/discovery/consul.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ type ConsulResolver struct {
client *api.Client
serviceName string
tags []string
passingOnly bool

addresses []string
hasTags []string
Expand All @@ -46,7 +47,10 @@ var consulResolverMap = make(map[string]*ConsulResolver)
var consulRwLock = new(sync.RWMutex)

func NewConsulResolver(serviceName, address string, opts ...CallOpt) (*ConsulResolver, error) {
cr := &ConsulResolver{}
cr := &ConsulResolver{
serviceName: serviceName,
passingOnly: true,
}
for _, f := range opts {
f(cr)
}
Expand Down Expand Up @@ -77,7 +81,6 @@ func NewConsulResolver(serviceName, address string, opts ...CallOpt) (*ConsulRes
cr.wg = new(sync.WaitGroup)
cr.httpCtx = httpCtx
cr.client = client
cr.serviceName = serviceName
cr.queryOptions = (&api.QueryOptions{}).WithContext(httpCtx.Ctx)

err = cr.resolve()
Expand All @@ -96,7 +99,11 @@ func NewConsulResolver(serviceName, address string, opts ...CallOpt) (*ConsulRes
return cr, nil
}
func (consulResolver *ConsulResolver) resolve() (err error) {
serviceEntries, metaInfo, err := consulResolver.client.Health().ServiceMultipleTags(consulResolver.serviceName, consulResolver.tags, true, consulResolver.queryOptions)
serviceEntries, metaInfo, err := consulResolver.client.Health().ServiceMultipleTags(
consulResolver.serviceName,
consulResolver.tags,
consulResolver.passingOnly,
consulResolver.queryOptions)
if err != nil {
if e, ok := err.(*url.Error); ok {
if e.Err == context.Canceled {
Expand Down Expand Up @@ -200,5 +207,12 @@ func BalancePolicyCallOpt(balancePolicy balancePolicy) CallOpt {
}
}

func PassingOnlyCallOpt(passingOnly bool) CallOpt {
return func(cr *ConsulResolver) error {
cr.passingOnly = passingOnly
return nil
}
}

var NewTagCallOpt = TagCallOpt
var NewBalancePolicyCallOpt = BalancePolicyCallOpt

0 comments on commit abd5c69

Please sign in to comment.