in config/consumer_config.go [65:121]
func (cc *ConsumerConfig) Init(rc *RootConfig) error {
if cc == nil {
return nil
}
buildDebugMsg := func() string {
if len(cc.References) == 0 {
return "empty"
}
consumerNames := make([]string, 0, len(cc.References))
for k := range cc.References {
consumerNames = append(consumerNames, k)
}
return strings.Join(consumerNames, ", ")
}
logger.Debugf("Registered consumer clients are %v", buildDebugMsg())
cc.RegistryIDs = translateIds(cc.RegistryIDs)
if len(cc.RegistryIDs) <= 0 {
cc.RegistryIDs = rc.getRegistryIds()
}
if cc.TracingKey == "" && len(rc.Tracing) > 0 {
for k := range rc.Tracing {
cc.TracingKey = k
break
}
}
for key, referenceConfig := range cc.References {
if referenceConfig.InterfaceName == "" {
reference := GetConsumerService(key)
// try to use interface name defined by pb
triplePBService, ok := reference.(common.TriplePBService)
if !ok {
logger.Errorf("Dubbo-go cannot get interface name with reference = %s."+
"Please run the command 'go install github.com/dubbogo/dubbogo-cli/cmd/protoc-gen-go-triple@latest' to get the latest "+
"protoc-gen-go-triple, and then re-generate your pb file again by this tool."+
"If you are not using pb serialization, please set 'interfaceName' field in reference config to let dubbogo get the interface name.", key)
continue
} else {
// use interface name defined by pb
referenceConfig.InterfaceName = triplePBService.XXX_InterfaceName()
}
}
if err := referenceConfig.Init(rc); err != nil {
return err
}
}
if err := defaults.Set(cc); err != nil {
return err
}
if err := verify(cc); err != nil {
return err
}
cc.rootConfig = rc
return nil
}