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
}