gitee.com/h79/goutils@v1.22.10/discovery/client.go (about)

     1  package discovery
     2  
     3  import (
     4  	"gitee.com/h79/goutils/discovery/config"
     5  	"gitee.com/h79/goutils/discovery/consul"
     6  	"gitee.com/h79/goutils/discovery/etcd"
     7  	"gitee.com/h79/goutils/discovery/local"
     8  	"gitee.com/h79/goutils/discovery/resolver"
     9  	"gitee.com/h79/goutils/discovery/service"
    10  	"gitee.com/h79/goutils/discovery/zookeeper"
    11  )
    12  
    13  func NewClient(conf config.Config, points config.EndPoints, resolver resolver.Resolver) (service.Client, error) {
    14  	if ncf, ok := _client[points.Type]; ok {
    15  		return ncf(conf, points, resolver)
    16  	}
    17  	switch points.Type {
    18  	case "consul":
    19  		return consul.NewConsulClient(conf, points, resolver)
    20  	case "zookeeper":
    21  		return zookeeper.NewZkClient(conf, points, resolver)
    22  	case "etcd":
    23  		return etcd.NewClient(conf, points, resolver)
    24  	default:
    25  		return local.NewDefaultClient(conf, points, resolver)
    26  	}
    27  }
    28  
    29  /*
    30   * example
    31  	//points, err := server.ReadEndPoints(endpointFileName)
    32  	//if err != nil {
    33  	//	return nil, err
    34  	//}
    35  	//
    36  	//health, err := server.ReadHealth("")
    37  
    38  	//cfg := config.Config{
    39  	//	Node:   ,
    40  	//	Server: ,
    41  	//	HealthCheck:  health,
    42  	//	Meta:   ,
    43  	//	Tags:   ,
    44  	//}
    45  
    46  	client, err := NewClient(*conf, points)
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  */