Documentation ¶
Index ¶
- Constants
- Variables
- func BeforeShutdown()
- func ConsumerInit(confConFile string) error
- func GetCallback(name string) func(response common.CallbackResponse)
- func GetClientTlsConfigBuilder() getty.TlsConfigBuilder
- func GetConsumerService(name string) common.RPCService
- func GetProviderService(name string) common.RPCService
- func GetRPCService(name string) common.RPCService
- func GetRouterURLSet() *gxset.HashSet
- func GetServerTlsConfigBuilder() getty.TlsConfigBuilder
- func GetSslEnabled() bool
- func GracefulShutdownInit()
- func IsProvider() bool
- func Load()
- func ProviderInit(confProFile string) error
- func RPCService(service common.RPCService)
- func RouterInit(confRouterFile string) error
- func SetClientTlsConfigBuilder(configBuilder getty.TlsConfigBuilder)
- func SetConsumerConfig(c ConsumerConfig)
- func SetConsumerService(service common.RPCService)
- func SetProviderConfig(p ProviderConfig)
- func SetProviderService(service common.RPCService)
- func SetServerTlsConfigBuilder(configBuilder getty.TlsConfigBuilder)
- func SetSslEnabled(enabled bool)
- type ApplicationConfig
- type BaseConfig
- type ConfigCenterConfig
- type ConsumerConfig
- type GenericService
- type LocalRouterRules
- type MetadataReportConfig
- type MethodConfig
- type MetricConfig
- type MockService
- type ProtocolConfig
- type ProviderConfig
- type ReferenceConfig
- func (c *ReferenceConfig) GenericLoad(id string)
- func (c *ReferenceConfig) GetRPCService() common.RPCService
- func (c *ReferenceConfig) Implement(v common.RPCService)
- func (c *ReferenceConfig) Prefix() string
- func (c *ReferenceConfig) Refer(_ interface{})
- func (c *ReferenceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
- type RegistryConfig
- type RemoteConfig
- type ServiceConfig
- func (c *ServiceConfig) Export() error
- func (c *ServiceConfig) GetExportedUrls() []*common.URL
- func (c *ServiceConfig) Implement(s common.RPCService)
- func (c *ServiceConfig) InitExported()
- func (c *ServiceConfig) IsExport() bool
- func (c *ServiceConfig) Prefix() string
- func (c *ServiceConfig) Unexport()
- func (c *ServiceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
- type ServiceDiscoveryConfig
- type ShutdownConfig
Constants ¶
const (
MaxWheelTimeSpan = 900e9 // 900s, 15 minute
)
Variables ¶
var ( // ShutdownSignals receives shutdown signals to process ShutdownSignals = []os.Signal{os.Interrupt, os.Kill, syscall.SIGKILL, syscall.SIGSTOP, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, syscall.SIGABRT, syscall.SIGSYS, syscall.SIGTERM} // DumpHeapShutdownSignals receives shutdown signals to process DumpHeapShutdownSignals = []os.Signal{syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, syscall.SIGABRT, syscall.SIGSYS} )
Functions ¶
func BeforeShutdown ¶ added in v1.3.0
func BeforeShutdown()
BeforeShutdown provides processing flow before shutdown
func ConsumerInit ¶ added in v1.2.0
ConsumerInit loads config file to init consumer config
func GetCallback ¶ added in v1.3.0
func GetCallback(name string) func(response common.CallbackResponse)
GetCallback gets CallbackResponse by @name
func GetClientTlsConfigBuilder ¶ added in v1.5.1
func GetClientTlsConfigBuilder() getty.TlsConfigBuilder
func GetConsumerService ¶
func GetConsumerService(name string) common.RPCService
GetConsumerService gets ConsumerService by @name
func GetProviderService ¶
func GetProviderService(name string) common.RPCService
GetProviderService gets ProviderService by @name
func GetRPCService ¶
func GetRPCService(name string) common.RPCService
GetRPCService get rpc service for consumer
func GetRouterURLSet ¶ added in v1.5.0
GetRouterURLSet exposes the routerURLSet
func GetServerTlsConfigBuilder ¶ added in v1.5.1
func GetServerTlsConfigBuilder() getty.TlsConfigBuilder
func GetSslEnabled ¶ added in v1.5.1
func GetSslEnabled() bool
func IsProvider ¶ added in v1.5.0
func IsProvider() bool
func ProviderInit ¶ added in v1.2.0
ProviderInit loads config file to init provider config
func RPCService ¶
func RPCService(service common.RPCService)
RPCService create rpc service for consumer
func RouterInit ¶ added in v1.4.0
RouterInit Load config file to init router config
func SetClientTlsConfigBuilder ¶ added in v1.5.1
func SetClientTlsConfigBuilder(configBuilder getty.TlsConfigBuilder)
func SetConsumerConfig ¶
func SetConsumerConfig(c ConsumerConfig)
SetConsumerConfig sets consumerConfig by @c
func SetConsumerService ¶
func SetConsumerService(service common.RPCService)
SetConsumerService is called by init() of implement of RPCService
func SetProviderConfig ¶
func SetProviderConfig(p ProviderConfig)
SetProviderConfig sets provider config by @p
func SetProviderService ¶
func SetProviderService(service common.RPCService)
SetProviderService is called by init() of implement of RPCService
func SetServerTlsConfigBuilder ¶ added in v1.5.1
func SetServerTlsConfigBuilder(configBuilder getty.TlsConfigBuilder)
func SetSslEnabled ¶ added in v1.5.1
func SetSslEnabled(enabled bool)
Types ¶
type ApplicationConfig ¶
type ApplicationConfig struct { Organization string `yaml:"organization" json:"organization,omitempty" property:"organization"` Name string `yaml:"name" json:"name,omitempty" property:"name"` Module string `yaml:"module" json:"module,omitempty" property:"module"` Version string `yaml:"version" json:"version,omitempty" property:"version"` Owner string `yaml:"owner" json:"owner,omitempty" property:"owner"` Environment string `yaml:"environment" json:"environment,omitempty" property:"environment"` // the metadata type. remote or local MetadataType string `default:"local" yaml:"metadataType" json:"metadataType,omitempty" property:"metadataType"` }
ApplicationConfig is a configuration for current application, whether the application is a provider or a consumer
func GetApplicationConfig ¶ added in v1.4.0
func GetApplicationConfig() *ApplicationConfig
GetApplicationConfig find the application config if not, we will create one Usually applicationConfig will be initialized when system start we use double-check to reduce race condition In general, it will be locked 0 or 1 time. So you don't need to worry about the race condition
func (*ApplicationConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ApplicationConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the ApplicationConfig by @unmarshal function
type BaseConfig ¶
type BaseConfig struct { ConfigCenterConfig *ConfigCenterConfig `yaml:"config_center" json:"config_center,omitempty"` // since 1.5.0 version Remotes map[string]*RemoteConfig `yaml:"remote" json:"remote,omitempty"` ServiceDiscoveries map[string]*ServiceDiscoveryConfig `yaml:"service_discovery" json:"service_discovery,omitempty"` MetadataReportConfig *MetadataReportConfig `yaml:"metadata_report" json:"metadata_report,omitempty" property:"metadata_report"` // application config ApplicationConfig *ApplicationConfig `yaml:"application" json:"application,omitempty" property:"application"` EventDispatcherType string `default:"direct" yaml:"event_dispatcher_type" json:"event_dispatcher_type,omitempty"` MetricConfig *MetricConfig `yaml:"metrics" json:"metrics,omitempty"` // contains filtered or unexported fields }
BaseConfig is the common configuration for provider and consumer
func GetBaseConfig ¶ added in v1.5.0
func GetBaseConfig() *BaseConfig
func (*BaseConfig) GetRemoteConfig ¶ added in v1.5.0
func (c *BaseConfig) GetRemoteConfig(name string) (config *RemoteConfig, ok bool)
GetRemoteConfig will return the remote's config with the name if found
func (*BaseConfig) GetServiceDiscoveries ¶ added in v1.5.0
func (c *BaseConfig) GetServiceDiscoveries(name string) (config *ServiceDiscoveryConfig, ok bool)
nolint
func (*BaseConfig) SetFatherConfig ¶
func (c *BaseConfig) SetFatherConfig(fatherConfig interface{})
SetFatherConfig sets father config by @fatherConfig
type ConfigCenterConfig ¶
type ConfigCenterConfig struct { Protocol string `required:"true" yaml:"protocol" json:"protocol,omitempty"` Address string `yaml:"address" json:"address,omitempty"` Cluster string `yaml:"cluster" json:"cluster,omitempty"` Group string `default:"dubbo" yaml:"group" json:"group,omitempty"` Username string `yaml:"username" json:"username,omitempty"` Password string `yaml:"password" json:"password,omitempty"` LogDir string `yaml:"log_dir" json:"log_dir,omitempty"` ConfigFile string `default:"dubbo.properties" yaml:"config_file" json:"config_file,omitempty"` Namespace string `default:"dubbo" yaml:"namespace" json:"namespace,omitempty"` AppConfigFile string `default:"dubbo.properties" yaml:"app_config_file" json:"app_config_file,omitempty"` AppId string `default:"dubbo" yaml:"app_id" json:"app_id,omitempty"` TimeoutStr string `yaml:"timeout" json:"timeout,omitempty"` RemoteRef string `required:"false" yaml:"remote_ref" json:"remote_ref,omitempty"` // contains filtered or unexported fields }
ConfigCenterConfig is configuration for config center
ConfigCenter also introduced concepts of namespace and group to better manage Key-Value pairs by group, those configs are already built-in in many professional third-party configuration centers. In most cases, namespace is used to isolate different tenants, while group is used to divide the key set from one tenant into groups.
ConfigCenter has currently supported Zookeeper, Nacos, Etcd, Consul, Apollo
func (*ConfigCenterConfig) GetUrlMap ¶ added in v1.3.0
func (c *ConfigCenterConfig) GetUrlMap() url.Values
GetUrlMap gets url map from ConfigCenterConfig
func (*ConfigCenterConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ConfigCenterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the ConfigCenterConfig by @unmarshal function
type ConsumerConfig ¶
type ConsumerConfig struct { BaseConfig `yaml:",inline"` Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"` // client Connect_Timeout string `default:"100ms" yaml:"connect_timeout" json:"connect_timeout,omitempty" property:"connect_timeout"` ConnectTimeout time.Duration Registry *RegistryConfig `yaml:"registry" json:"registry,omitempty" property:"registry"` Registries map[string]*RegistryConfig `default:"{}" yaml:"registries" json:"registries" property:"registries"` Request_Timeout string `yaml:"request_timeout" default:"5s" json:"request_timeout,omitempty" property:"request_timeout"` RequestTimeout time.Duration ProxyFactory string `yaml:"proxy_factory" default:"default" json:"proxy_factory,omitempty" property:"proxy_factory"` Check *bool `yaml:"check" json:"check,omitempty" property:"check"` References map[string]*ReferenceConfig `yaml:"references" json:"references,omitempty" property:"references"` ProtocolConf interface{} `yaml:"protocol_conf" json:"protocol_conf,omitempty" property:"protocol_conf"` FilterConf interface{} `yaml:"filter_conf" json:"filter_conf,omitempty" property:"filter_conf"` ShutdownConfig *ShutdownConfig `yaml:"shutdown_conf" json:"shutdown_conf,omitempty" property:"shutdown_conf"` ConfigType map[string]string `yaml:"config_type" json:"config_type,omitempty" property:"config_type"` // contains filtered or unexported fields }
ConsumerConfig is Consumer default configuration
func GetConsumerConfig ¶
func GetConsumerConfig() ConsumerConfig
GetConsumerConfig find the consumer config if not found, create new one we use double-check to reduce race condition In general, it will be locked 0 or 1 time. So you don't need to worry about the race condition
func (*ConsumerConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ConsumerConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the ConsumerConfig by @unmarshal function
type GenericService ¶ added in v1.2.0
type GenericService struct { Invoke func(ctx context.Context, req []interface{}) (interface{}, error) `dubbo:"$invoke"` // contains filtered or unexported fields }
GenericService uses for generic invoke for service call
func NewGenericService ¶ added in v1.2.0
func NewGenericService(referenceStr string) *GenericService
NewGenericService returns a GenericService instance
func (*GenericService) Reference ¶ added in v1.2.0
func (u *GenericService) Reference() string
Reference gets referenceStr from GenericService
type LocalRouterRules ¶ added in v1.5.1
type LocalRouterRules struct {
RouterRules []interface{} `yaml:"routerRules"`
}
LocalRouterRules defines the local router config structure
type MetadataReportConfig ¶ added in v1.5.0
type MetadataReportConfig struct { Protocol string `required:"true" yaml:"protocol" json:"protocol,omitempty"` RemoteRef string `required:"true" yaml:"remote_ref" json:"remote_ref,omitempty"` Params map[string]string `yaml:"params" json:"params,omitempty" property:"params"` Group string `yaml:"group" json:"group,omitempty" property:"group"` }
MethodConfig is method level configuration
func (*MetadataReportConfig) IsValid ¶ added in v1.5.0
func (c *MetadataReportConfig) IsValid() bool
func (*MetadataReportConfig) Prefix ¶ added in v1.5.0
func (c *MetadataReportConfig) Prefix() string
nolint
func (*MetadataReportConfig) ToUrl ¶ added in v1.5.0
func (c *MetadataReportConfig) ToUrl() (*common.URL, error)
nolint
func (*MetadataReportConfig) UnmarshalYAML ¶ added in v1.5.0
func (c *MetadataReportConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshal the MetadataReportConfig by @unmarshal function
type MethodConfig ¶
type MethodConfig struct { InterfaceId string InterfaceName string Name string `yaml:"name" json:"name,omitempty" property:"name"` Retries string `yaml:"retries" json:"retries,omitempty" property:"retries"` LoadBalance string `yaml:"loadbalance" json:"loadbalance,omitempty" property:"loadbalance"` Weight int64 `yaml:"weight" json:"weight,omitempty" property:"weight"` TpsLimitInterval string `yaml:"tps.limit.interval" json:"tps.limit.interval,omitempty" property:"tps.limit.interval"` TpsLimitRate string `yaml:"tps.limit.rate" json:"tps.limit.rate,omitempty" property:"tps.limit.rate"` TpsLimitStrategy string `yaml:"tps.limit.strategy" json:"tps.limit.strategy,omitempty" property:"tps.limit.strategy"` ExecuteLimit string `yaml:"execute.limit" json:"execute.limit,omitempty" property:"execute.limit"` ExecuteLimitRejectedHandler string `` /* 127-byte string literal not displayed */ Sticky bool `yaml:"sticky" json:"sticky,omitempty" property:"sticky"` RequestTimeout string `yaml:"timeout" json:"timeout,omitempty" property:"timeout"` }
MethodConfig defines method config
func (*MethodConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *MethodConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the MethodConfig by @unmarshal function
type MetricConfig ¶ added in v1.4.0
type MetricConfig struct { Reporters []string `yaml:"reporters" json:"reporters,omitempty"` HistogramBucket []float64 `yaml:"histogram_bucket" json:"histogram_bucket,omitempty"` }
This is the config struct for all metrics implementation
func GetMetricConfig ¶ added in v1.4.0
func GetMetricConfig() *MetricConfig
GetMetricConfig find the MetricConfig if it is nil, create a new one we use double-check to reduce race condition In general, it will be locked 0 or 1 time. So you don't need to worry about the race condition
func (*MetricConfig) GetHistogramBucket ¶ added in v1.4.0
func (mc *MetricConfig) GetHistogramBucket() []float64
find the histogram bucket if it's empty, the default value will be return
type MockService ¶
type MockService struct{}
MockService mocks the rpc service for test
func (*MockService) GetUser ¶
func (*MockService) GetUser(ctx context.Context, itf []interface{}, str *struct{}) error
GetUser mocks the GetUser method
func (*MockService) GetUser1 ¶
func (*MockService) GetUser1(ctx context.Context, itf []interface{}, str *struct{}) error
GetUser1 mocks the GetUser1 method
func (*MockService) Reference ¶ added in v1.2.0
func (*MockService) Reference() string
Reference mocks the Reference method
type ProtocolConfig ¶
type ProtocolConfig struct { Name string `required:"true" yaml:"name" json:"name,omitempty" property:"name"` Ip string `required:"true" yaml:"ip" json:"ip,omitempty" property:"ip"` Port string `required:"true" yaml:"port" json:"port,omitempty" property:"port"` }
ProtocolConfig is protocol configuration
type ProviderConfig ¶
type ProviderConfig struct { BaseConfig `yaml:",inline"` Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"` ProxyFactory string `yaml:"proxy_factory" default:"default" json:"proxy_factory,omitempty" property:"proxy_factory"` Services map[string]*ServiceConfig `yaml:"services" json:"services,omitempty" property:"services"` Protocols map[string]*ProtocolConfig `yaml:"protocols" json:"protocols,omitempty" property:"protocols"` ProtocolConf interface{} `yaml:"protocol_conf" json:"protocol_conf,omitempty" property:"protocol_conf"` FilterConf interface{} `yaml:"filter_conf" json:"filter_conf,omitempty" property:"filter_conf"` ShutdownConfig *ShutdownConfig `yaml:"shutdown_conf" json:"shutdown_conf,omitempty" property:"shutdown_conf"` ConfigType map[string]string `yaml:"config_type" json:"config_type,omitempty" property:"config_type"` Registry *RegistryConfig `yaml:"registry" json:"registry,omitempty" property:"registry"` Registries map[string]*RegistryConfig `default:"{}" yaml:"registries" json:"registries" property:"registries"` // contains filtered or unexported fields }
ProviderConfig is the default configuration of service provider
func GetProviderConfig ¶
func GetProviderConfig() ProviderConfig
GetProviderConfig find the provider config if not found, create new one
func (*ProviderConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ProviderConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the ProviderConfig by @unmarshal function
type ReferenceConfig ¶
type ReferenceConfig struct { InterfaceName string `required:"true" yaml:"interface" json:"interface,omitempty" property:"interface"` Check *bool `yaml:"check" json:"check,omitempty" property:"check"` Url string `yaml:"url" json:"url,omitempty" property:"url"` Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"` Protocol string `default:"dubbo" yaml:"protocol" json:"protocol,omitempty" property:"protocol"` Registry string `yaml:"registry" json:"registry,omitempty" property:"registry"` Cluster string `yaml:"cluster" json:"cluster,omitempty" property:"cluster"` Loadbalance string `yaml:"loadbalance" json:"loadbalance,omitempty" property:"loadbalance"` Retries string `yaml:"retries" json:"retries,omitempty" property:"retries"` Group string `yaml:"group" json:"group,omitempty" property:"group"` Version string `yaml:"version" json:"version,omitempty" property:"version"` ProvideBy string `yaml:"provide_by" json:"provide_by,omitempty" property:"provide_by"` Methods []*MethodConfig `yaml:"methods" json:"methods,omitempty" property:"methods"` Async bool `yaml:"async" json:"async,omitempty" property:"async"` Params map[string]string `yaml:"params" json:"params,omitempty" property:"params"` Generic bool `yaml:"generic" json:"generic,omitempty" property:"generic"` Sticky bool `yaml:"sticky" json:"sticky,omitempty" property:"sticky"` RequestTimeout string `yaml:"timeout" json:"timeout,omitempty" property:"timeout"` ForceTag bool `yaml:"force.tag" json:"force.tag,omitempty" property:"force.tag"` // contains filtered or unexported fields }
ReferenceConfig is the configuration of service consumer
func NewReferenceConfig ¶
func NewReferenceConfig(id string, ctx context.Context) *ReferenceConfig
NewReferenceConfig The only way to get a new ReferenceConfig
func (*ReferenceConfig) GenericLoad ¶ added in v1.2.0
func (c *ReferenceConfig) GenericLoad(id string)
GenericLoad ...
func (*ReferenceConfig) GetRPCService ¶
func (c *ReferenceConfig) GetRPCService() common.RPCService
GetRPCService gets RPCService from proxy
func (*ReferenceConfig) Implement ¶
func (c *ReferenceConfig) Implement(v common.RPCService)
Implement @v is service provider implemented RPCService
func (*ReferenceConfig) UnmarshalYAML ¶
func (c *ReferenceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the ReferenceConfig by @unmarshal function
type RegistryConfig ¶
type RegistryConfig struct { Protocol string `required:"true" yaml:"protocol" json:"protocol,omitempty" property:"protocol"` // I changed "type" to "protocol" ,the same as "protocol" field in java class RegistryConfig TimeoutStr string `yaml:"timeout" default:"5s" json:"timeout,omitempty" property:"timeout"` // unit: second Group string `yaml:"group" json:"group,omitempty" property:"group"` TTL string `yaml:"ttl" default:"10m" json:"ttl,omitempty" property:"ttl"` // unit: minute // for registry Address string `yaml:"address" json:"address,omitempty" property:"address"` Username string `yaml:"username" json:"username,omitempty" property:"username"` Password string `yaml:"password" json:"password,omitempty" property:"password"` Simplified bool `yaml:"simplified" json:"simplified,omitempty" property:"simplified"` // Always use this registry first if set to true, useful when subscribe to multiple registries Preferred bool `yaml:"preferred" json:"preferred,omitempty" property:"preferred"` // The region where the registry belongs, usually used to isolate traffics Zone string `yaml:"zone" json:"zone,omitempty" property:"zone"` //// Force must user the region, property zone is specified. //ZoneForce bool `yaml:"zoneForce" json:"zoneForce,omitempty" property:"zoneForce"` // Affects traffic distribution among registries, // useful when subscribe to multiple registries Take effect only when no preferred registry is specified. Weight int64 `yaml:"weight" json:"params,omitempty" property:"weight"` Params map[string]string `yaml:"params" json:"params,omitempty" property:"params"` }
RegistryConfig is the configuration of the registry center
func (*RegistryConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *RegistryConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the RegistryConfig by @unmarshal function
type RemoteConfig ¶ added in v1.5.0
type RemoteConfig struct { Protocol string `yaml:"protocol" json:"protocol,omitempty"` Address string `yaml:"address" json:"address,omitempty"` TimeoutStr string `default:"5s" yaml:"timeout" json:"timeout,omitempty"` Username string `yaml:"username" json:"username,omitempty" property:"username"` Password string `yaml:"password" json:"password,omitempty" property:"password"` Params map[string]string `yaml:"params" json:"params,omitempty"` }
RemoteConfig: usually we need some middleware, including nacos, zookeeper this represents an instance of this middleware so that other module, like config center, registry could reuse the config but now, only metadata report, metadata service, service discovery use this structure
func (*RemoteConfig) GetParam ¶ added in v1.5.0
func (rc *RemoteConfig) GetParam(key string, def string) string
GetParam will return the value of the key. If not found, def will be return; def => default value
func (*RemoteConfig) Timeout ¶ added in v1.5.0
func (rc *RemoteConfig) Timeout() time.Duration
Timeout return timeout duration. if the configure is invalid, or missing, the default value 5s will be returned
type ServiceConfig ¶
type ServiceConfig struct { Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"` Protocol string `default:"dubbo" required:"true" yaml:"protocol" json:"protocol,omitempty" property:"protocol"` // multi protocol support, split by ',' InterfaceName string `required:"true" yaml:"interface" json:"interface,omitempty" property:"interface"` Registry string `yaml:"registry" json:"registry,omitempty" property:"registry"` Cluster string `default:"failover" yaml:"cluster" json:"cluster,omitempty" property:"cluster"` Loadbalance string `default:"random" yaml:"loadbalance" json:"loadbalance,omitempty" property:"loadbalance"` Group string `yaml:"group" json:"group,omitempty" property:"group"` Version string `yaml:"version" json:"version,omitempty" property:"version" ` Methods []*MethodConfig `yaml:"methods" json:"methods,omitempty" property:"methods"` Warmup string `yaml:"warmup" json:"warmup,omitempty" property:"warmup"` Retries string `yaml:"retries" json:"retries,omitempty" property:"retries"` Serialization string `yaml:"serialization" json:"serialization" property:"serialization"` Params map[string]string `yaml:"params" json:"params,omitempty" property:"params"` Token string `yaml:"token" json:"token,omitempty" property:"token"` AccessLog string `yaml:"accesslog" json:"accesslog,omitempty" property:"accesslog"` TpsLimiter string `yaml:"tps.limiter" json:"tps.limiter,omitempty" property:"tps.limiter"` TpsLimitInterval string `yaml:"tps.limit.interval" json:"tps.limit.interval,omitempty" property:"tps.limit.interval"` TpsLimitRate string `yaml:"tps.limit.rate" json:"tps.limit.rate,omitempty" property:"tps.limit.rate"` TpsLimitStrategy string `yaml:"tps.limit.strategy" json:"tps.limit.strategy,omitempty" property:"tps.limit.strategy"` TpsLimitRejectedHandler string `yaml:"tps.limit.rejected.handler" json:"tps.limit.rejected.handler,omitempty" property:"tps.limit.rejected.handler"` ExecuteLimit string `yaml:"execute.limit" json:"execute.limit,omitempty" property:"execute.limit"` ExecuteLimitRejectedHandler string `` /* 127-byte string literal not displayed */ Auth string `yaml:"auth" json:"auth,omitempty" property:"auth"` ParamSign string `yaml:"param.sign" json:"param.sign,omitempty" property:"param.sign"` Tag string `yaml:"tag" json:"tag,omitempty" property:"tag"` Protocols map[string]*ProtocolConfig // contains filtered or unexported fields }
ServiceConfig is the configuration of the service provider
func NewServiceConfig ¶
func NewServiceConfig(id string, context context.Context) *ServiceConfig
NewServiceConfig The only way to get a new ServiceConfig
func (*ServiceConfig) GetExportedUrls ¶ added in v1.5.0
func (c *ServiceConfig) GetExportedUrls() []*common.URL
GetExportedUrls will return the url in service config's exporter
func (*ServiceConfig) Implement ¶
func (c *ServiceConfig) Implement(s common.RPCService)
Implement only store the @s and return
func (*ServiceConfig) InitExported ¶ added in v1.5.0
func (c *ServiceConfig) InitExported()
InitExported will set exported as false atom bool
func (*ServiceConfig) IsExport ¶ added in v1.5.0
func (c *ServiceConfig) IsExport() bool
IsExport will return whether the service config is exported or not
func (*ServiceConfig) Prefix ¶
func (c *ServiceConfig) Prefix() string
Prefix returns dubbo.service.${interface}.
func (*ServiceConfig) Unexport ¶ added in v1.5.0
func (c *ServiceConfig) Unexport()
Unexport will call unexport of all exporters service config exported
func (*ServiceConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ServiceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML unmarshals the ServiceConfig by @unmarshal function
type ServiceDiscoveryConfig ¶ added in v1.5.0
type ServiceDiscoveryConfig struct { // Protocol indicate which implementation will be used. // for example, if the Protocol is nacos, it means that we will use nacosServiceDiscovery Protocol string `yaml:"protocol" json:"protocol,omitempty"` // Group, usually you don't need to config this field. // you can use this to do some isolation Group string `yaml:"group" json:"group,omitempty"` // RemoteRef is the reference point to RemoteConfig which will be used to create remotes instances. RemoteRef string `yaml:"remote_ref" json:"remote_ref,omitempty"` }
ServiceDiscoveryConfig will be used to create
type ShutdownConfig ¶ added in v1.3.0
type ShutdownConfig struct { /* * Total timeout. Even though we don't release all resources, * the application will shutdown if the costing time is over this configuration. The unit is ms. * default value is 60 * 1000 ms = 1 minutes * In general, it should be bigger than 3 * StepTimeout. */ Timeout string `default:"60s" yaml:"timeout" json:"timeout,omitempty" property:"timeout"` /* * the timeout on each step. You should evaluate the response time of request * and the time that client noticed that server shutdown. * For example, if your client will received the notification within 10s when you start to close server, * and the 99.9% requests will return response in 2s, so the StepTimeout will be bigger than(10+2) * 1000ms, * maybe (10 + 2*3) * 1000ms is a good choice. */ StepTimeout string `default:"10s" yaml:"step_timeout" json:"step.timeout,omitempty" property:"step.timeout"` // when we try to shutdown the application, we will reject the new requests. In most cases, you don't need to configure this. RejectRequestHandler string `yaml:"reject_handler" json:"reject_handler,omitempty" property:"reject_handler"` // true -> new request will be rejected. RejectRequest bool // true -> all requests had been processed. In provider side it means that all requests are returned response to clients // In consumer side, it means that all requests getting response from servers RequestsFinished bool }
ShutdownConfig is used as configuration for graceful shutdown
func (*ShutdownConfig) GetStepTimeout ¶ added in v1.3.0
func (config *ShutdownConfig) GetStepTimeout() time.Duration
nolint
func (*ShutdownConfig) GetTimeout ¶ added in v1.3.0
func (config *ShutdownConfig) GetTimeout() time.Duration
nolint
func (*ShutdownConfig) Prefix ¶ added in v1.3.0
func (config *ShutdownConfig) Prefix() string
nolint
Source Files ¶
- application_config.go
- base_config.go
- config_center_config.go
- config_loader.go
- config_utils.go
- consumer_config.go
- generic_service.go
- graceful_shutdown.go
- graceful_shutdown_config.go
- graceful_shutdown_signal_linux.go
- metadata_report_config.go
- method_config.go
- metric_config.go
- mock_rpcservice.go
- protocol_config.go
- provider_config.go
- reference_config.go
- registry_config.go
- remote_config.go
- router_config.go
- service.go
- service_config.go
- service_discovery_config.go
- ssl_config.go