You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by GitBox <gi...@apache.org> on 2020/08/29 05:05:49 UTC

[GitHub] [dubbo-go] AlexStocks commented on a change in pull request #701: Ftr: consul service discovery

AlexStocks commented on a change in pull request #701:
URL: https://github.com/apache/dubbo-go/pull/701#discussion_r479608493



##########
File path: registry/consul/service_discovery.go
##########
@@ -223,6 +225,37 @@ func (csd *consulServiceDiscovery) GetServices() *gxset.HashSet {
 
 }
 
+// encodeConsulMetadata because consul validate key strictly.
+func encodeConsulMetadata(metadata map[string]string) map[string]string {
+	if metadata == nil {
+		metadata = make(map[string]string, 1)

Review comment:
       metaMap := make(map[string]string, 8)

##########
File path: registry/consul/service_discovery.go
##########
@@ -223,6 +225,37 @@ func (csd *consulServiceDiscovery) GetServices() *gxset.HashSet {
 
 }
 
+// encodeConsulMetadata because consul validate key strictly.
+func encodeConsulMetadata(metadata map[string]string) map[string]string {
+	if metadata == nil {
+		metadata = make(map[string]string, 1)
+	}
+	encoder := base64.RawStdEncoding
+	for k, v := range metadata {
+		delete(metadata, k)

Review comment:
       delete an map elem in its for-loop range is not a good code action. pls insert data into another map 'metaMap' instead.

##########
File path: registry/consul/service_discovery.go
##########
@@ -223,6 +225,37 @@ func (csd *consulServiceDiscovery) GetServices() *gxset.HashSet {
 
 }
 
+// encodeConsulMetadata because consul validate key strictly.
+func encodeConsulMetadata(metadata map[string]string) map[string]string {
+	if metadata == nil {
+		metadata = make(map[string]string, 1)
+	}
+	encoder := base64.RawStdEncoding
+	for k, v := range metadata {
+		delete(metadata, k)
+		metadata[encoder.EncodeToString([]byte(k))] = v
+	}
+	return metadata
+}
+
+// nolint
+func decodeConsulMetadata(metadata map[string]string) map[string]string {
+	if metadata == nil {
+		metadata = make(map[string]string, 1)
+	}
+	encoder := base64.RawStdEncoding
+	for k, v := range metadata {
+		delete(metadata, k)

Review comment:
       using another map instead as the above suggestions.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org