github.com/projecteru2/core@v0.0.0-20240321043226-06bcc1c23f58/client/servicediscovery/builder.go (about)

     1  package servicediscovery
     2  
     3  import "google.golang.org/grpc/resolver"
     4  
     5  // LBResolverBuilder for service discovery lb
     6  type LBResolverBuilder struct {
     7  	updateCh chan []string
     8  }
     9  
    10  var lbResolverBuilder *LBResolverBuilder
    11  
    12  func init() { //nolint
    13  	lbResolverBuilder = &LBResolverBuilder{
    14  		updateCh: make(chan []string),
    15  	}
    16  	resolver.Register(lbResolverBuilder)
    17  }
    18  
    19  // Scheme for interface
    20  func (b *LBResolverBuilder) Scheme() string {
    21  	return "lb"
    22  }
    23  
    24  // Build for interface
    25  func (b *LBResolverBuilder) Build(target resolver.Target, cc resolver.ClientConn, _ resolver.BuildOptions) (resolver.Resolver, error) {
    26  	return newLBResolver(cc, target.URL.Path, b.updateCh), nil
    27  }