Alanxtl commented on code in PR #3395:
URL: https://github.com/apache/dubbo-go/pull/3395#discussion_r3388686342


##########
metadata/client.go:
##########
@@ -70,23 +77,27 @@ func GetMetadataFromRpc(revision string, instance 
registry.ServiceInstance) (*in
        return remoteService.getMetadataInfo(context.Background(), revision)
 }
 
+// remoteMetadataService is the internal interface for fetching MetadataInfo 
via RPC.
+// The context parameter is accepted for future cancellation support but is 
not yet propagated.
 type remoteMetadataService interface {
-       getMetadataInfo(context context.Context, revision string) 
(*info.MetadataInfo, error)
+       getMetadataInfo(_ context.Context, revision string) 
(*info.MetadataInfo, error)
 }
 
 type triMetadataServiceV2 struct {
        invoker base.Invoker
 }
 
-func (m *triMetadataServiceV2) getMetadataInfo(ctx context.Context, revision 
string) (*info.MetadataInfo, error) {
+// getMetadataInfo fetches metadata via RPC using the Triple v2 protocol.
+// TODO(context-propagation): ctx is not yet forwarded to the invoker; 
cancellation is not respected.
+func (m *triMetadataServiceV2) getMetadataInfo(_ context.Context, revision 
string) (*info.MetadataInfo, error) {
        const methodName = "GetMetadataInfo"
        req := &tripleapi.MetadataRequest{Revision: revision}
        metadataInfo := &tripleapi.MetadataInfoV2{}
        inv, _ := generateInvocation(m.invoker.GetURL(), methodName, req, 
metadataInfo, constant.CallUnary)
        res := m.invoker.Invoke(context.Background(), inv)
        if res.Error() != nil {
-               logger.Errorf("[Metadata] could not get the metadata info from 
remote provider, err=%v", res.Error())
-               return nil, res.Error()
+               logger.Errorf("[Metadata-RPC] could not get the metadata info 
from remote provider, err=%v", res.Error())

Review Comment:
   ```suggestion
                logger.Errorf("[Metadata][RPC] could not get the metadata info 
from remote provider, err=%v", res.Error())
   ```
   logger改成这种格式



##########
metadata/client.go:
##########
@@ -45,18 +45,25 @@ const defaultTimeout = "5s" // s
 func GetMetadataFromMetadataReport(revision string, instance 
registry.ServiceInstance, registryId string) (*info.MetadataInfo, error) {
        report := GetMetadataReportByRegistry(registryId)
        if report == nil {
-               return nil, perrors.Errorf("no metadata report instance found 
for registryId=%s, please check metadata-report configuration", registryId)
+               return nil, perrors.Errorf("[Metadata-Report] no metadata 
report instance found for registryId=%s, please check metadata-report 
configuration", registryId)
        }
-       return report.GetAppMetadata(instance.GetServiceName(), revision)
+       meta, err := report.GetAppMetadata(instance.GetServiceName(), revision)
+       if err != nil {
+               return nil, perrors.Wrapf(err, "[Metadata-Report] failed to get 
app metadata app=%s revision=%s", instance.GetServiceName(), revision)
+       }
+       return meta, nil
 }
 
 func GetMetadataFromRpc(revision string, instance registry.ServiceInstance) 
(*info.MetadataInfo, error) {
        url := buildStandardMetadataServiceURL(instance)
+       if url == nil {
+               return nil, perrors.New("[Metadata-URL] metadata service URL 
params missing: protocol is empty")
+       }
        url.SetParam(constant.TimeoutKey, defaultTimeout)
        p := extension.GetProtocol(url.Protocol)
        invoker := p.Refer(url)
        if invoker == nil { // can't connect instance
-               return nil, perrors.New("can not connect to remote metadata 
service host: " + url.Ip)
+               return nil, perrors.New("[Metadata-RPC] can not connect to 
remote metadata service host: " + url.Ip)

Review Comment:
   perrors 都不用加前缀
   只有logger需要加前缀



##########
registry/servicediscovery/service_instances_changed_listener_impl.go:
##########
@@ -258,20 +263,61 @@ func GetMetadataInfo(app string, instance 
registry.ServiceInstance, revision str
        var metadataInfo *info.MetadataInfo
        var err error
        if instance.GetMetadata() == nil {
+               // No metadata map at all; treat as default (local/RPC) storage 
type.
                metadataStorageType = constant.DefaultMetadataStorageType
        } else {
                metadataStorageType = 
instance.GetMetadata()[constant.MetadataStorageTypePropertyName]
+               if metadataStorageType == "" {
+                       // MetadataStorageTypePropertyName absent (e.g. old 
Java provider); default to local storage type.
+                       logger.Warnf("[Metadata] MetadataStorageType not set 
for instance %s, defaulting to local", instance.GetID())
+                       metadataStorageType = 
constant.DefaultMetadataStorageType
+               }
        }
+
        if metadataStorageType == constant.RemoteMetadataStorageType {
-               metadataInfo, err = 
metadata.GetMetadataFromMetadataReport(revision, instance, registryId)
-               if err != nil {
-                       return nil, err
+               var reportErr error
+               metadataInfo, reportErr = 
metadata.GetMetadataFromMetadataReport(revision, instance, registryId)

Review Comment:
   ```suggestion
                metadataInfo, reportErr := 
metadata.GetMetadataFromMetadataReport(revision, instance, registryId)
   ```



##########
metadata/client.go:
##########
@@ -147,7 +158,9 @@ type remoteMetadataServiceV1 struct {
        invoker base.Invoker
 }
 
-func (m *remoteMetadataServiceV1) getMetadataInfo(ctx context.Context, 
revision string) (*info.MetadataInfo, error) {
+// getMetadataInfo fetches metadata via RPC using the Dubbo v1 protocol.

Review Comment:
   dubbo v1?
   是dubbo2吗
   这样写名字容易有歧义



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to