From cbff1ba1c715957dc4aa8996648e8aa815707ae2 Mon Sep 17 00:00:00 2001 From: wuhua3 Date: Wed, 5 Jun 2024 15:30:01 +0800 Subject: [PATCH] fix:all groups are appended with RPC_REG_GROUP_SUFFIX fix:all groups are appended with RPC_REG_GROUP_SUFFIX --- agent.go | 3 +++ core/globalContext.go | 12 +----------- core/globalContext_test.go | 9 +++++---- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/agent.go b/agent.go index 5d70e816..c43df71a 100644 --- a/agent.go +++ b/agent.go @@ -906,6 +906,9 @@ func (a *Agent) unavailableAllServices() { func (a *Agent) doExportService(url *motan.URL) { a.svcLock.Lock() defer a.svcLock.Unlock() + if _, ok := a.serviceExporters.Load(url.GetIdentityWithRegistry()); ok { + return + } globalContext := a.Context exporter := &mserver.DefaultExporter{} diff --git a/core/globalContext.go b/core/globalContext.go index 2bb6e1ef..ec4d4d1f 100644 --- a/core/globalContext.go +++ b/core/globalContext.go @@ -553,21 +553,11 @@ func (c *Context) parseRegGroupSuffix(urlMap map[string]*URL) { if regGroupSuffix == "" { return } - filterMap := make(map[string]struct{}, len(urlMap)) for _, url := range urlMap { - filterMap[url.GetIdentityWithRegistry()] = struct{}{} - } - for k, url := range urlMap { if strings.HasSuffix(url.Group, regGroupSuffix) { continue } - newUrl := url.Copy() - newUrl.Group += regGroupSuffix - if _, ok := filterMap[newUrl.GetIdentityWithRegistry()]; ok { - continue - } - filterMap[newUrl.GetIdentityWithRegistry()] = struct{}{} - urlMap[k] = newUrl + url.Group += regGroupSuffix } } diff --git a/core/globalContext_test.go b/core/globalContext_test.go index b6bb4710..b80943fd 100644 --- a/core/globalContext_test.go +++ b/core/globalContext_test.go @@ -268,11 +268,11 @@ func TestContext_parseRegGroupSuffix(t *testing.T) { }, AssertFunc: func(t *testing.T, urlMap map[string]*URL) { groupMap := countGroup(urlMap) - assert.Equal(t, 1, groupMap["group1"]) - assert.Equal(t, 1, groupMap["group1"+regGroupSuffix]) + assert.Equal(t, 0, groupMap["group1"]) + assert.Equal(t, 2, groupMap["group1"+regGroupSuffix]) assert.Equal(t, 1, groupMap["group2"+regGroupSuffix]) - assert.Equal(t, 1, groupMap["group3"]) - assert.Equal(t, 1, groupMap["group3"+regGroupSuffix]) + assert.Equal(t, 0, groupMap["group3"]) + assert.Equal(t, 2, groupMap["group3"+regGroupSuffix]) assert.Equal(t, 2, groupMap["group4"+regGroupSuffix]) assert.Equal(t, 2, groupMap["group5"+regGroupSuffix]) }, @@ -280,6 +280,7 @@ func TestContext_parseRegGroupSuffix(t *testing.T) { } os.Setenv(RegGroupSuffix, regGroupSuffix) ctx := &Context{} + // replace all groups with regGroupSuffix for _, s := range cases { ctx.parseRegGroupSuffix(s.UrlMap) s.AssertFunc(t, s.UrlMap)