update
diff --git a/pkg/dubbo/metadata/server.go b/pkg/dubbo/metadata/server.go
index adef7b6..762a56d 100644
--- a/pkg/dubbo/metadata/server.go
+++ b/pkg/dubbo/metadata/server.go
@@ -20,6 +20,7 @@
import (
"context"
"io"
+ "strings"
"time"
)
@@ -143,7 +144,8 @@
// only response the target MetaData Resource by application name or revision
respMetadataList := &core_mesh.MetaDataResourceList{}
for _, item := range metadataList.Items {
- if item.Spec != nil && req.ApplicationName == item.Spec.App {
+ // MetaData.Name = AppName.Revision, so we need to check MedaData.Name has prefix of AppName
+ if item.Spec != nil && strings.HasPrefix(item.Spec.App, req.ApplicationName) {
if req.Revision != "" {
// revision is not empty, response the Metadata with application name and target revision
if req.Revision == item.Spec.Revision {
@@ -194,7 +196,7 @@
return
}
- log.Error(err, "send mapping sync response failed", "metadataList", metadataList, "revision", revision)
+ log.Error(err, "send metadata sync response failed", "metadataList", metadataList, "revision", revision)
errChan <- errors.Wrap(err, "DubboSyncClient send with an error")
}
},
@@ -209,7 +211,8 @@
expected := false
metaData := resource.(*core_mesh.MetaDataResource)
for _, applicationName := range metadataSyncStream.SubscribedApplicationNames() {
- if applicationName == metaData.Spec.GetApp() && mesh == resource.GetMeta().GetMesh() {
+ // MetaData.Name = AppName.Revision, so we need to check MedaData.Name has prefix of AppName
+ if strings.HasPrefix(metaData.Spec.GetApp(), applicationName) && mesh == resource.GetMeta().GetMesh() {
expected = true
break
}