From ad8a8ad94b04db4d4bc6b39fc611c44d8cd407d1 Mon Sep 17 00:00:00 2001 From: cvictory <shenglicao2@gmail.com> Date: Sun, 20 Dec 2020 23:11:35 +0800 Subject: [PATCH] fix metadata report fail --- config/service_config.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/config/service_config.go b/config/service_config.go index 32104f03d..1021306d0 100644 --- a/config/service_config.go +++ b/config/service_config.go @@ -40,10 +40,13 @@ import ( "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/extension" "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/metadata/service" "github.com/apache/dubbo-go/protocol" "github.com/apache/dubbo-go/protocol/protocolwrapper" ) +var remoteMetadataService service.MetadataService + // ServiceConfig is the configuration of the service provider type ServiceConfig struct { context context.Context @@ -223,6 +226,7 @@ func (c *ServiceConfig) Export() error { } c.exporters = append(c.exporters, exporter) } + PublishServiceDefinition(ivkURL) } c.exported.Store(true) return nil @@ -332,3 +336,17 @@ func (c *ServiceConfig) GetExportedUrls() []*common.URL { } return nil } + +func PublishServiceDefinition(url *common.URL) { + if remoteMetadataService == nil { + var err error + if remoteMetadataService, err = extension.GetMetadataService("remote"); err != nil { + logger.Warnf("get remote metadataService fail. %v", err) + return + } else if remoteMetadataService == nil { + logger.Info("get remote metadataService will nil.") + return + } + } + remoteMetadataService.PublishServiceDefinition(url) +} -- GitLab