You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by la...@apache.org on 2021/09/24 05:33:36 UTC
[dubbo-go] branch config-enhance updated: Feat: config enhance
(service discovery) (#1469)
This is an automated email from the ASF dual-hosted git repository.
laurence pushed a commit to branch config-enhance
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/config-enhance by this push:
new 526ea1a Feat: config enhance (service discovery) (#1469)
526ea1a is described below
commit 526ea1a8a28c8aca065803cef3a0e2e4e07c1ff7
Author: MasterKenway <40...@users.noreply.github.com>
AuthorDate: Fri Sep 24 13:33:29 2021 +0800
Feat: config enhance (service discovery) (#1469)
* feat: fit metadata report config
* feat: add export after config load
style: remove redundant imports
fix: remove nacos redundant n.group
* fix: remove useless code
---
config/config_loader.go | 7 +++++++
registry/etcdv3/service_discovery.go | 31 +++++++++----------------------
registry/file/service_discovery.go | 4 +---
registry/nacos/service_discovery.go | 2 +-
4 files changed, 18 insertions(+), 26 deletions(-)
diff --git a/config/config_loader.go b/config/config_loader.go
index c8e529b..e15cb7e 100644
--- a/config/config_loader.go
+++ b/config/config_loader.go
@@ -382,6 +382,13 @@ func registerServiceInstance() {
remoteMetadataService.PublishMetadata(GetApplicationConfig().Name)
}
}
+
+ if GetApplicationConfig().MetadataType == constant.REMOTE_METADATA_STORAGE_TYPE {
+ // publish metadata to remote
+ if remoteMetadataService, err := extension.GetRemoteMetadataService(); err == nil {
+ remoteMetadataService.PublishMetadata(GetApplicationConfig().Name)
+ }
+ }
}
//
diff --git a/registry/etcdv3/service_discovery.go b/registry/etcdv3/service_discovery.go
index a467633..214ea42 100644
--- a/registry/etcdv3/service_discovery.go
+++ b/registry/etcdv3/service_discovery.go
@@ -30,8 +30,6 @@ import (
gxpage "github.com/dubbogo/gost/hash/page"
"github.com/hashicorp/vault/sdk/helper/jsonutil"
-
- perrors "github.com/pkg/errors"
)
import (
@@ -292,38 +290,27 @@ func (e *etcdV3ServiceDiscovery) DataChange(eventType remoting.Event) bool {
return true
}
-// netEcdv3ServiceDiscovery
+// newEtcdv3ServiceDiscovery
func newEtcdV3ServiceDiscovery() (registry.ServiceDiscovery, error) {
initLock.Lock()
defer initLock.Unlock()
- // todo fix
- sdc, ok := config.GetRootConfig().ServiceDiscoveries[""]
- if !ok || len(sdc.RemoteRef) == 0 {
- return nil, perrors.New("could not init the etcd service instance because the config is invalid")
- }
+ metadataReportConfig := config.GetMetadataReportConfg()
- remoteConfig, ok := config.GetRootConfig().Remotes[sdc.RemoteRef]
- if !ok {
- return nil, perrors.New("could not find the remote config for name: " + sdc.RemoteRef)
- }
-
- // init etcdv3 client
- timeout, err := time.ParseDuration(remoteConfig.TimeoutStr)
+ to, err := time.ParseDuration(metadataReportConfig.Timeout)
if err != nil {
- logger.Errorf("timeout config %v is invalid,err is %v", remoteConfig.TimeoutStr, err.Error())
- return nil, perrors.WithMessagef(err, "new etcd service discovery(address:%v)", remoteConfig.Address)
+ logger.Errorf("timeout config %v is invalid,err is %v", metadataReportConfig.Timeout, err.Error())
+ return nil, err
}
-
- logger.Infof("etcd address is: %v,timeout is:%s", remoteConfig.Address, timeout.String())
+ logger.Infof("etcd address is: %v,timeout is:%s", metadataReportConfig.Timeout, to.String())
client := etcdv3.NewServiceDiscoveryClient(
gxetcd.WithName(gxetcd.RegistryETCDV3Client),
- gxetcd.WithTimeout(timeout),
- gxetcd.WithEndpoints(strings.Split(remoteConfig.Address, ",")...),
+ gxetcd.WithTimeout(to),
+ gxetcd.WithEndpoints(strings.Split(metadataReportConfig.Address, ",")...),
)
- descriptor := fmt.Sprintf("etcd-service-discovery[%s]", remoteConfig.Address)
+ descriptor := fmt.Sprintf("etcd-service-discovery[%s]", metadataReportConfig.Address)
return &etcdV3ServiceDiscovery{descriptor, client, nil, gxset.NewSet(), make(map[string]*etcdv3.EventListener)}, nil
}
diff --git a/registry/file/service_discovery.go b/registry/file/service_discovery.go
index e8657d9..1c74163 100644
--- a/registry/file/service_discovery.go
+++ b/registry/file/service_discovery.go
@@ -57,9 +57,7 @@ type fileSystemServiceDiscovery struct {
}
func newFileSystemServiceDiscovery() (registry.ServiceDiscovery, error) {
- // todo fix
- sdc, ok := config.GetRootConfig().ServiceDiscoveries[""]
- if !ok || sdc.Protocol != constant.FILE_KEY {
+ if config.GetMetadataReportConfg().Protocol != constant.FILE_KEY {
return nil, perrors.New("could not init the instance because the config is invalid")
}
diff --git a/registry/nacos/service_discovery.go b/registry/nacos/service_discovery.go
index b744dc8..ee7e276 100644
--- a/registry/nacos/service_discovery.go
+++ b/registry/nacos/service_discovery.go
@@ -218,8 +218,8 @@ func (n *nacosServiceDiscovery) AddListener(listener registry.ServiceInstancesCh
for _, t := range listener.GetServiceNames().Values() {
serviceName := t.(string)
err := n.namingClient.Client().Subscribe(&vo.SubscribeParam{
- ServiceName: serviceName,
GroupName: n.group,
+ ServiceName: serviceName,
SubscribeCallback: func(services []model.SubscribeService, err error) {
if err != nil {
logger.Errorf("Could not handle the subscribe notification because the err is not nil."+