in config/service_config.go [394:479]
func (s *ServiceConfig) getUrlMap() url.Values {
urlMap := url.Values{}
// first set user params
for k, v := range s.Params {
urlMap.Set(k, v)
}
urlMap.Set(constant.InterfaceKey, s.Interface)
urlMap.Set(constant.TimestampKey, strconv.FormatInt(time.Now().Unix(), 10))
urlMap.Set(constant.ClusterKey, s.Cluster)
urlMap.Set(constant.LoadbalanceKey, s.Loadbalance)
urlMap.Set(constant.WarmupKey, s.Warmup)
urlMap.Set(constant.RetriesKey, s.Retries)
if s.Group != "" {
urlMap.Set(constant.GroupKey, s.Group)
}
if s.Version != "" {
urlMap.Set(constant.VersionKey, s.Version)
}
urlMap.Set(constant.RegistryRoleKey, strconv.Itoa(common.PROVIDER))
urlMap.Set(constant.ReleaseKey, "dubbo-golang-"+constant.Version)
urlMap.Set(constant.SideKey, (common.RoleType(common.PROVIDER)).Role())
// todo: move
urlMap.Set(constant.SerializationKey, s.Serialization)
// application config info
ac := GetApplicationConfig()
urlMap.Set(constant.ApplicationKey, ac.Name)
urlMap.Set(constant.OrganizationKey, ac.Organization)
urlMap.Set(constant.NameKey, ac.Name)
urlMap.Set(constant.ModuleKey, ac.Module)
urlMap.Set(constant.AppVersionKey, ac.Version)
urlMap.Set(constant.OwnerKey, ac.Owner)
urlMap.Set(constant.EnvironmentKey, ac.Environment)
// filter
var filters string
if s.Filter == "" {
filters = constant.DefaultServiceFilters
} else {
filters = s.Filter
}
if s.adaptiveService {
filters += fmt.Sprintf(",%s", constant.AdaptiveServiceProviderFilterKey)
}
if s.metricsEnable {
filters += fmt.Sprintf(",%s", constant.MetricsFilterKey)
}
urlMap.Set(constant.ServiceFilterKey, filters)
// filter special config
urlMap.Set(constant.AccessLogFilterKey, s.AccessLog)
// tps limiter
urlMap.Set(constant.TPSLimitStrategyKey, s.TpsLimitStrategy)
urlMap.Set(constant.TPSLimitIntervalKey, s.TpsLimitInterval)
urlMap.Set(constant.TPSLimitRateKey, s.TpsLimitRate)
urlMap.Set(constant.TPSLimiterKey, s.TpsLimiter)
urlMap.Set(constant.TPSRejectedExecutionHandlerKey, s.TpsLimitRejectedHandler)
urlMap.Set(constant.TracingConfigKey, s.TracingKey)
// execute limit filter
urlMap.Set(constant.ExecuteLimitKey, s.ExecuteLimit)
urlMap.Set(constant.ExecuteRejectedExecutionHandlerKey, s.ExecuteLimitRejectedHandler)
// auth filter
urlMap.Set(constant.ServiceAuthKey, s.Auth)
urlMap.Set(constant.ParameterSignatureEnableKey, s.ParamSign)
// whether to export or not
urlMap.Set(constant.ExportKey, strconv.FormatBool(s.export))
urlMap.Set(constant.PIDKey, fmt.Sprintf("%d", os.Getpid()))
for _, v := range s.Methods {
prefix := "methods." + v.Name + "."
urlMap.Set(prefix+constant.LoadbalanceKey, v.LoadBalance)
urlMap.Set(prefix+constant.RetriesKey, v.Retries)
urlMap.Set(prefix+constant.WeightKey, strconv.FormatInt(v.Weight, 10))
urlMap.Set(prefix+constant.TPSLimitStrategyKey, v.TpsLimitStrategy)
urlMap.Set(prefix+constant.TPSLimitIntervalKey, v.TpsLimitInterval)
urlMap.Set(prefix+constant.TPSLimitRateKey, v.TpsLimitRate)
urlMap.Set(constant.ExecuteLimitKey, v.ExecuteLimit)
urlMap.Set(constant.ExecuteRejectedExecutionHandlerKey, v.ExecuteLimitRejectedHandler)
}
return urlMap
}