更新consul使用tag
This commit is contained in:
parent
6c14e82c92
commit
a7f76f00a9
|
|
@ -84,39 +84,6 @@ func RegisterAPI(name string, addr string, port int, tags ...string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
//Register 注册服务到consul
|
||||
func Register(name string, addr string, port int, tags ...string) error {
|
||||
client, err := New()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if client == nil {
|
||||
return errors.New("consul 实例空")
|
||||
}
|
||||
|
||||
// 创建注册到consul的服务到
|
||||
registration := new(consulapi.AgentServiceRegistration)
|
||||
registration.ID = fmt.Sprintf("%s-%s:%d", name, addr, port)
|
||||
registration.Name = name
|
||||
registration.Port = port
|
||||
registration.Tags = tags
|
||||
registration.Address = addr
|
||||
|
||||
// 增加consul健康检查回调函数
|
||||
check := new(consulapi.AgentServiceCheck)
|
||||
check.GRPC = fmt.Sprintf("%s:%d", registration.Address, registration.Port)
|
||||
check.Timeout = "5s"
|
||||
check.Interval = "5s"
|
||||
check.DeregisterCriticalServiceAfter = "30s" // 故障检查失败30s后 consul自动将注册服务删除
|
||||
registration.Check = check
|
||||
|
||||
// 注册服务到consul
|
||||
if err := client.Agent().ServiceRegister(registration); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//DeRegister 取消consul注册的服务
|
||||
func DeRegister(name string, addr string, port int) error {
|
||||
client, err := New()
|
||||
|
|
@ -131,7 +98,7 @@ func DeRegister(name string, addr string, port int) error {
|
|||
}
|
||||
|
||||
//FindNode 查找节点
|
||||
func FindNode(servicename string) (*consulapi.AgentService, error) {
|
||||
func FindNode(servicename, tag string) (*consulapi.AgentService, error) {
|
||||
client, err := New()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -140,7 +107,7 @@ func FindNode(servicename string) (*consulapi.AgentService, error) {
|
|||
if client == nil {
|
||||
return nil, errors.New("consul 实例空")
|
||||
}
|
||||
services, _, err := client.Health().Service(servicename, "", true, nil)
|
||||
services, _, err := client.Health().Service(servicename, tag, true, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -156,9 +123,9 @@ func FindNode(servicename string) (*consulapi.AgentService, error) {
|
|||
return services[r.Intn(l)%l].Service, nil
|
||||
}
|
||||
|
||||
//FindServer 从consul中发现服务
|
||||
//FindServer 从consul中发现服务,并返回grpc连接实例
|
||||
func FindServer(servicename string) (*grpc.ClientConn, error) {
|
||||
node, err := FindNode(servicename)
|
||||
node, err := FindNode(servicename, "") //无tag视为grpc服务
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue