diff --git a/clients/naming_client/naming_grpc/naming_grpc_proxy.go b/clients/naming_client/naming_grpc/naming_grpc_proxy.go index efc07811..7de07808 100644 --- a/clients/naming_client/naming_grpc/naming_grpc_proxy.go +++ b/clients/naming_client/naming_grpc/naming_grpc_proxy.go @@ -18,6 +18,7 @@ package naming_grpc import ( "context" + "fmt" "os" "time" @@ -221,8 +222,12 @@ func (proxy *NamingGrpcProxy) Subscribe(serviceName, groupName string, clusters //过滤不符合当前节点标签的实例 if len(subscribeServiceResponse.ServiceInfo.Hosts) != 0 { tag := os.Getenv("ALICLOUD_SERVICE_TAG") - tagMapList := make([]model.Instance, 0) - backUpMapList := make([]model.Instance, 0) + if tag == "" { + tag = "base" + } + fmt.Printf("[NamingGrpcProxy.Subscribe] instance tag: %v\n", tag) + tagMapList := make([]model.Instance, 0) //标签节点列表 + backUpMapList := make([]model.Instance, 0) //普通节点列表 for _, host := range subscribeServiceResponse.ServiceInfo.Hosts { // 如果没有metadata, 认为是普通实例 @@ -232,25 +237,28 @@ func (proxy *NamingGrpcProxy) Subscribe(serviceName, groupName string, clusters } instanceTag, ok := host.Metadata["alicloud.service.tag"] + fmt.Printf("[NamingGrpcProxy.Subscribe] host: %v, metadata : %v\n", host, instanceTag) if !ok || instanceTag == "base" || instanceTag == "" { //普通节点,加入到backUp列表中 backUpMapList = append(backUpMapList, host) continue } - if instanceTag == tag { // 节点标签和当前标签能够匹配,直接加入列表 - tagMapList = append(tagMapList, host) - } else if (tag == "base" && instanceTag == "") || (tag == "" && instanceTag == "base") || (tag == "" && instanceTag == "") { //兼容普通节点的情况 + if instanceTag == tag { tagMapList = append(tagMapList, host) } } - if len(tagMapList) != 0 { + if tag != "base" && len(tagMapList) != 0 { + fmt.Printf("[NamingGrpcProxy.Subscribe] change host list, tag: %v, list: %v\n", tag, tagMapList) subscribeServiceResponse.ServiceInfo.Hosts = tagMapList - } else if len(backUpMapList) != 0 { + } + if (tag == "base" || tag == "") && len(backUpMapList) != 0 { + fmt.Printf("[NamingGrpcProxy.Subscribe] change host list, tag: %v, list: %v\n", tag, tagMapList) subscribeServiceResponse.ServiceInfo.Hosts = backUpMapList } } + fmt.Printf("[NamingGrpcProxy.Subscribe] final service info: %v\n", subscribeServiceResponse.ServiceInfo) return subscribeServiceResponse.ServiceInfo, nil }