diff --git a/config/config_loader_test.go b/config/config_loader_test.go index 461e607c1e0ad2e9471770224c8eb6d5f3ee96f6..baf0c8fba3c40d92c9de0d00181237afe2388ea7 100644 --- a/config/config_loader_test.go +++ b/config/config_loader_test.go @@ -503,6 +503,10 @@ func (m *mockServiceDiscovery) String() string { panic("implement me") } +func (m *mockServiceDiscovery) Init(registryURL common.URL) error { + panic("implement me") +} + func (m *mockServiceDiscovery) Destroy() error { panic("implement me") } diff --git a/registry/consul/service_discovery.go b/registry/consul/service_discovery.go index b57f7719111e428804a5e56b38c3ec6246668a6e..e794beb0a9fafb8a9ecaf368686b60b146f6e215 100644 --- a/registry/consul/service_discovery.go +++ b/registry/consul/service_discovery.go @@ -227,31 +227,31 @@ func (csd *consulServiceDiscovery) GetServices() *gxset.HashSet { // encodeConsulMetadata because consul validate key strictly. func encodeConsulMetadata(metadata map[string]string) map[string]string { + consulMetadata := make(map[string]string, 8) if metadata == nil { - metadata = make(map[string]string, 1) + return consulMetadata } encoder := base64.RawStdEncoding for k, v := range metadata { - delete(metadata, k) - metadata[encoder.EncodeToString([]byte(k))] = v + consulMetadata[encoder.EncodeToString([]byte(k))] = v } - return metadata + return consulMetadata } // nolint func decodeConsulMetadata(metadata map[string]string) map[string]string { + dubboMetadata := make(map[string]string, 8) if metadata == nil { - metadata = make(map[string]string, 1) + return dubboMetadata } encoder := base64.RawStdEncoding for k, v := range metadata { - delete(metadata, k) kBytes, err := encoder.DecodeString(k) if err != nil { logger.Warnf("can not decoded consul metadata key %s", k) continue } - metadata[string(kBytes)] = v + dubboMetadata[string(kBytes)] = v } return metadata }