You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/06/07 02:44:34 UTC

[dubbo-go] branch 3.0 updated: Rft: Restructuring remoting metadata service (#1227)

This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 3d57cfd  Rft: Restructuring remoting metadata service (#1227)
3d57cfd is described below

commit 3d57cfd75936c4c937c0c49d718b055ad14468d6
Author: XavierNiu <a...@nxw.name>
AuthorDate: Mon Jun 7 10:43:46 2021 +0800

    Rft: Restructuring remoting metadata service (#1227)
    
    * restructure remoting metadata serivce
    
    * conform to the code style of imports
---
 common/extension/metadata_remote.go                | 12 +++----
 config/config_loader.go                            |  4 +--
 config/reference_config.go                         |  4 +--
 config/service_config.go                           |  4 +--
 .../{remote/remote_impl => remoting}/service.go    | 38 ++++++++++------------
 .../remote_impl => remoting}/service_test.go       |  4 +--
 .../{remote/remote.go => remoting_service.go}      |  5 ++-
 .../service_instances_changed_listener_impl.go     |  2 +-
 8 files changed, 35 insertions(+), 38 deletions(-)

diff --git a/common/extension/metadata_remote.go b/common/extension/metadata_remote.go
index b07178e..d0452b7 100644
--- a/common/extension/metadata_remote.go
+++ b/common/extension/metadata_remote.go
@@ -26,22 +26,22 @@ import (
 )
 
 import (
-	"dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
+	"dubbo.apache.org/dubbo-go/v3/metadata/service"
 )
 
-type remoteMetadataServiceCreator func() (remote.RemoteMetadataService, error)
+type remotingMetadataServiceCreator func() (service.RemotingMetadataService, error)
 
 var (
-	creator remoteMetadataServiceCreator
+	creator remotingMetadataServiceCreator
 )
 
-// SetRemoteMetadataService will store the remote metadata service
-func SetRemoteMetadataService(creatorFunc remoteMetadataServiceCreator) {
+// SetRemotingMetadataService will store the remote metadata service
+func SetRemotingMetadataService(creatorFunc remotingMetadataServiceCreator) {
 	creator = creatorFunc
 }
 
 // GetRemoteMetadataServiceFactory will create a MetadataService instance
-func GetRemoteMetadataService() (remote.RemoteMetadataService, error) {
+func GetRemotingMetadataService() (service.RemotingMetadataService, error) {
 	if creator != nil {
 		return creator()
 	}
diff --git a/config/config_loader.go b/config/config_loader.go
index 5b0e9c4..54617ab 100644
--- a/config/config_loader.go
+++ b/config/config_loader.go
@@ -300,8 +300,8 @@ func registerServiceInstance() {
 		}
 	}
 	// todo publish metadata to remote
-	if remoteMetadataServiceImpl, err := extension.GetRemoteMetadataService(); err == nil {
-		remoteMetadataServiceImpl.PublishMetadata(GetApplicationConfig().Name)
+	if remotingMetadataService, err := extension.GetRemotingMetadataService(); err == nil {
+		remotingMetadataService.PublishMetadata(GetApplicationConfig().Name)
 	}
 }
 
diff --git a/config/reference_config.go b/config/reference_config.go
index c649d67..f4d43cb 100644
--- a/config/reference_config.go
+++ b/config/reference_config.go
@@ -296,8 +296,8 @@ func (c *ReferenceConfig) GetInvoker() protocol.Invoker {
 }
 
 func publishConsumerDefinition(url *common.URL) {
-	if remoteMetadataServiceImpl, err := extension.GetRemoteMetadataService(); err == nil && remoteMetadataServiceImpl != nil {
-		remoteMetadataServiceImpl.PublishServiceDefinition(url)
+	if remotingMetadataService, err := extension.GetRemotingMetadataService(); err == nil && remotingMetadataService != nil {
+		remotingMetadataService.PublishServiceDefinition(url)
 	}
 }
 
diff --git a/config/service_config.go b/config/service_config.go
index c8ac41e..fb84c35 100644
--- a/config/service_config.go
+++ b/config/service_config.go
@@ -356,8 +356,8 @@ func (c *ServiceConfig) GetExportedUrls() []*common.URL {
 }
 
 func publishServiceDefinition(url *common.URL) {
-	if remoteMetadataServiceImpl, err := extension.GetRemoteMetadataService(); err == nil && remoteMetadataServiceImpl != nil {
-		remoteMetadataServiceImpl.PublishServiceDefinition(url)
+	if remotingMetadataService, err := extension.GetRemotingMetadataService(); err == nil && remotingMetadataService != nil {
+		remotingMetadataService.PublishServiceDefinition(url)
 
 	}
 }
diff --git a/metadata/service/remote/remote_impl/service.go b/metadata/service/remoting/service.go
similarity index 76%
rename from metadata/service/remote/remote_impl/service.go
rename to metadata/service/remoting/service.go
index 7023f52..ed9e990 100644
--- a/metadata/service/remote/remote_impl/service.go
+++ b/metadata/service/remoting/service.go
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package remote_impl
+package remoting
 
 import (
 	"sync"
@@ -33,14 +33,12 @@ import (
 	"dubbo.apache.org/dubbo-go/v3/metadata/definition"
 	"dubbo.apache.org/dubbo-go/v3/metadata/identifier"
 	"dubbo.apache.org/dubbo-go/v3/metadata/report/delegate"
+	"dubbo.apache.org/dubbo-go/v3/metadata/service"
 	"dubbo.apache.org/dubbo-go/v3/metadata/service/inmemory"
-	"dubbo.apache.org/dubbo-go/v3/metadata/service/remote"
 	"dubbo.apache.org/dubbo-go/v3/registry"
 )
 
-// MetadataService is a implement of metadata service which will delegate the remote metadata report
-// This is singleton
-type RemoteMetadataServiceImpl struct {
+type MetadataService struct {
 	*inmemory.MetadataService
 	exportedRevision   atomic.String
 	subscribedRevision atomic.String
@@ -48,16 +46,16 @@ type RemoteMetadataServiceImpl struct {
 }
 
 var (
-	metadataServiceOnce               sync.Once
-	remoteMetadataServiceImplInstance remote.RemoteMetadataService
+	metadataServiceOnce             sync.Once
+	remotingMetadataServiceInstance service.RemotingMetadataService
 )
 
 func init() {
-	extension.SetRemoteMetadataService(GetRemoteMetadataService)
+	extension.SetRemotingMetadataService(GetRemotingMetadataService)
 }
 
-// GetRemoteMetadataService will create a new remote MetadataService instance
-func GetRemoteMetadataService() (remote.RemoteMetadataService, error) {
+// GetRemotingMetadataService will create a new remote MetadataService instance
+func GetRemotingMetadataService() (service.RemotingMetadataService, error) {
 	var err error
 	metadataServiceOnce.Do(func() {
 		var mr *delegate.MetadataReport
@@ -67,19 +65,19 @@ func GetRemoteMetadataService() (remote.RemoteMetadataService, error) {
 		}
 		// it will never return error
 		inms, _ := inmemory.GetInMemoryMetadataService()
-		remoteMetadataServiceImplInstance = &RemoteMetadataServiceImpl{
+		remotingMetadataServiceInstance = &MetadataService{
 			// todo serviceName
 			//BaseMetadataService:     service.NewBaseMetadataService(""),
 			MetadataService: inms.(*inmemory.MetadataService),
 			delegateReport:  mr,
 		}
 	})
-	return remoteMetadataServiceImplInstance, err
+	return remotingMetadataServiceInstance, err
 }
 
 // PublishMetadata publishes the metadata info of @service to remote metadata center
-func (mts *RemoteMetadataServiceImpl) PublishMetadata(service string) {
-	info, err := mts.MetadataService.GetMetadataInfo("")
+func (s *MetadataService) PublishMetadata(service string) {
+	info, err := s.MetadataService.GetMetadataInfo("")
 	if err != nil {
 		logger.Errorf("GetMetadataInfo error[%v]", err)
 		return
@@ -88,7 +86,7 @@ func (mts *RemoteMetadataServiceImpl) PublishMetadata(service string) {
 		return
 	}
 	id := identifier.NewSubscriberMetadataIdentifier(service, info.CalAndGetRevision())
-	err = mts.delegateReport.PublishAppMetadata(id, info)
+	err = s.delegateReport.PublishAppMetadata(id, info)
 	if err != nil {
 		logger.Errorf("Publishing metadata to error[%v]", err)
 		return
@@ -97,14 +95,14 @@ func (mts *RemoteMetadataServiceImpl) PublishMetadata(service string) {
 }
 
 // GetMetadata get the medata info of service from report
-func (mts *RemoteMetadataServiceImpl) GetMetadata(instance registry.ServiceInstance) (*common.MetadataInfo, error) {
+func (s *MetadataService) GetMetadata(instance registry.ServiceInstance) (*common.MetadataInfo, error) {
 	revision := instance.GetMetadata()[constant.EXPORTED_SERVICES_REVISION_PROPERTY_NAME]
 	id := identifier.NewSubscriberMetadataIdentifier(instance.GetServiceName(), revision)
-	return mts.delegateReport.GetAppMetadata(id)
+	return s.delegateReport.GetAppMetadata(id)
 }
 
 // PublishServiceDefinition will call remote metadata's StoreProviderMetadata to store url info and service definition
-func (mts *RemoteMetadataServiceImpl) PublishServiceDefinition(url *common.URL) error {
+func (s *MetadataService) PublishServiceDefinition(url *common.URL) error {
 	interfaceName := url.GetParam(constant.INTERFACE_KEY, "")
 	isGeneric := url.GetParamBool(constant.GENERIC_KEY, false)
 	if common.RoleType(common.PROVIDER).Role() == url.GetParam(constant.SIDE_KEY, "") {
@@ -119,7 +117,7 @@ func (mts *RemoteMetadataServiceImpl) PublishServiceDefinition(url *common.URL)
 					Side:             url.GetParam(constant.SIDE_KEY, constant.PROVIDER_PROTOCOL),
 				},
 			}
-			mts.delegateReport.StoreProviderMetadata(id, sd)
+			s.delegateReport.StoreProviderMetadata(id, sd)
 			return nil
 		}
 		logger.Errorf("publishProvider interfaceName is empty . providerUrl:%v ", url)
@@ -137,7 +135,7 @@ func (mts *RemoteMetadataServiceImpl) PublishServiceDefinition(url *common.URL)
 				Side:             url.GetParam(constant.SIDE_KEY, "consumer"),
 			},
 		}
-		mts.delegateReport.StoreConsumerMetadata(id, params)
+		s.delegateReport.StoreConsumerMetadata(id, params)
 		return nil
 	}
 
diff --git a/metadata/service/remote/remote_impl/service_test.go b/metadata/service/remoting/service_test.go
similarity index 98%
rename from metadata/service/remote/remote_impl/service_test.go
rename to metadata/service/remoting/service_test.go
index ddc680d..a493214 100644
--- a/metadata/service/remote/remote_impl/service_test.go
+++ b/metadata/service/remoting/service_test.go
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package remote_impl
+package remoting
 
 import (
 	"fmt"
@@ -104,7 +104,7 @@ func TestMetadataService(t *testing.T) {
 	u, err := common.NewURL("mock://127.0.0.1:20000/?sync.report=true")
 	assert.NoError(t, err)
 	instance.GetMetadataReportInstance(u)
-	mts, err := GetRemoteMetadataService()
+	mts, err := GetRemotingMetadataService()
 	assert.NoError(t, err)
 	assert.NotNil(t, mts)
 }
diff --git a/metadata/service/remote/remote.go b/metadata/service/remoting_service.go
similarity index 92%
rename from metadata/service/remote/remote.go
rename to metadata/service/remoting_service.go
index 1a574fd..ec7653c 100644
--- a/metadata/service/remote/remote.go
+++ b/metadata/service/remoting_service.go
@@ -15,15 +15,14 @@
  * limitations under the License.
  */
 
-package remote
+package service
 
 import (
 	"dubbo.apache.org/dubbo-go/v3/common"
 	"dubbo.apache.org/dubbo-go/v3/registry"
 )
 
-// RemoteMetadataService for save and get metadata
-type RemoteMetadataService interface {
+type RemotingMetadataService interface {
 	// PublishMetadata publish the medata info of service from report
 	PublishMetadata(service string)
 	// GetMetadata get the medata info of service from report
diff --git a/registry/event/service_instances_changed_listener_impl.go b/registry/event/service_instances_changed_listener_impl.go
index 6d6ab00..cd1993c 100644
--- a/registry/event/service_instances_changed_listener_impl.go
+++ b/registry/event/service_instances_changed_listener_impl.go
@@ -151,7 +151,7 @@ func (lstn *ServiceInstancesChangedListenerImpl) getMetadataInfo(instance regist
 		metadataStorageType = instance.GetMetadata()[constant.METADATA_STORAGE_TYPE_PROPERTY_NAME]
 	}
 	if metadataStorageType == constant.REMOTE_METADATA_STORAGE_TYPE {
-		remoteMetadataServiceImpl, err := extension.GetRemoteMetadataService()
+		remoteMetadataServiceImpl, err := extension.GetRemotingMetadataService()
 		if err != nil {
 			return nil, err
 		}