Documentation
¶
Index ¶
- Variables
- func BeforeShutdown()
- func ConsumerInit(confConFile string) error
- func GetCallback(name string) func(response common.CallbackResponse)
- func GetConsumerService(name string) common.RPCService
- func GetProviderService(name string) common.RPCService
- func GetRPCService(name string) common.RPCService
- func GracefulShutdownInit()
- func Load()
- func ProviderInit(confProFile string) error
- func RPCService(service common.RPCService)
- func RouterInit(confRouterFile string) error
- func SetConsumerConfig(c ConsumerConfig)
- func SetConsumerService(service common.RPCService)
- func SetProviderConfig(p ProviderConfig)
- func SetProviderService(service common.RPCService)
- type ApplicationConfig
- type BaseConfig
- type ConfigCenterConfig
- type ConsumerConfig
- type GenericService
- 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 ServiceConfig
- type ShutdownConfig
Constants ¶
This section is empty.
Variables ¶
var ( // ShutdownSignals ... 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} // DumpHeapShutdownSignals ... DumpHeapShutdownSignals = []os.Signal{syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, syscall.SIGABRT, syscall.SIGSYS} )
Functions ¶
func GetCallback ¶ added in v1.3.0
func GetCallback(name string) func(response common.CallbackResponse)
GetCallback ...
func GetConsumerService ¶
func GetConsumerService(name string) common.RPCService
GetConsumerService ...
func GetProviderService ¶
func GetProviderService(name string) common.RPCService
GetProviderService ...
func GetRPCService ¶
func GetRPCService(name string) common.RPCService
GetRPCService get rpc service for consumer
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 SetConsumerService ¶
func SetConsumerService(service common.RPCService)
SetConsumerService is called by init() of implement of RPCService
func SetProviderService ¶
func SetProviderService(service common.RPCService)
SetProviderService is called by init() of implement of RPCService
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"`
}
ApplicationConfig ...
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
func (*ApplicationConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ApplicationConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
type BaseConfig ¶
type BaseConfig struct {
ConfigCenterConfig *ConfigCenterConfig `yaml:"config_center" json:"config_center,omitempty"`
MetricConfig *MetricConfig `yaml:"metrics" json:"metrics,omitempty"`
// contains filtered or unexported fields
}
BaseConfig is the common configuration for provider and consumer
func (*BaseConfig) SetFatherConfig ¶
func (c *BaseConfig) SetFatherConfig(fatherConfig interface{})
SetFatherConfig ...
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"`
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"`
// contains filtered or unexported fields
}
ConfigCenterConfig ...
func (*ConfigCenterConfig) GetUrlMap ¶ added in v1.3.0
func (c *ConfigCenterConfig) GetUrlMap() url.Values
GetUrlMap ...
func (*ConfigCenterConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ConfigCenterConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
type ConsumerConfig ¶
type ConsumerConfig struct {
BaseConfig `yaml:",inline"`
Filter string `yaml:"filter" json:"filter,omitempty" property:"filter"`
// application
ApplicationConfig *ApplicationConfig `yaml:"application" json:"application,omitempty" property:"application"`
// client
Connect_Timeout string `default:"100ms" yaml:"connect_timeout" json:"connect_timeout,omitempty" property:"connect_timeout"`
ConnectTimeout time.Duration
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"`
Registry *RegistryConfig `yaml:"registry" json:"registry,omitempty" property:"registry"`
Registries map[string]*RegistryConfig `yaml:"registries" json:"registries,omitempty" property:"registries"`
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"`
}
ConsumerConfig ...
func GetConsumerConfig ¶
func GetConsumerConfig() ConsumerConfig
GetConsumerConfig find the consumer config if not found, create new one
func (*ConsumerConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ConsumerConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
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 ...
func NewGenericService ¶ added in v1.2.0
func NewGenericService(referenceStr string) *GenericService
NewGenericService ...
func (*GenericService) Reference ¶ added in v1.2.0
func (u *GenericService) Reference() string
Reference ...
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 ...
func (*MethodConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *MethodConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
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
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 ...
func (*MockService) GetUser ¶
func (*MockService) GetUser(ctx context.Context, itf []interface{}, str *struct{}) error
GetUser ...
func (*MockService) GetUser1 ¶
func (*MockService) GetUser1(ctx context.Context, itf []interface{}, str *struct{}) error
GetUser1 ...
func (*MockService) Reference ¶ added in v1.2.0
func (*MockService) Reference() string
Reference ...
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 ...
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"`
ApplicationConfig *ApplicationConfig `yaml:"application" json:"application,omitempty" property:"application"`
Registry *RegistryConfig `yaml:"registry" json:"registry,omitempty" property:"registry"`
Registries map[string]*RegistryConfig `yaml:"registries" json:"registries,omitempty" property:"registries"`
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"`
}
ProviderConfig ...
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 ...
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"`
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"`
// contains filtered or unexported fields
}
ReferenceConfig ...
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 ...
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 ...
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"`
//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"`
Params map[string]string `yaml:"params" json:"params,omitempty" property:"params"`
}
RegistryConfig ...
func (*RegistryConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *RegistryConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
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"`
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"`
// contains filtered or unexported fields
}
ServiceConfig ...
func NewServiceConfig ¶
func NewServiceConfig(id string, context context.Context) *ServiceConfig
NewServiceConfig The only way to get a new ServiceConfig
func (*ServiceConfig) Implement ¶
func (c *ServiceConfig) Implement(s common.RPCService)
Implement ...
func (*ServiceConfig) UnmarshalYAML ¶ added in v1.2.0
func (c *ServiceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
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 ...
func (*ShutdownConfig) GetStepTimeout ¶ added in v1.3.0
func (config *ShutdownConfig) GetStepTimeout() time.Duration
GetStepTimeout ...
func (*ShutdownConfig) GetTimeout ¶ added in v1.3.0
func (config *ShutdownConfig) GetTimeout() time.Duration
GetTimeout ...
func (*ShutdownConfig) Prefix ¶ added in v1.3.0
func (config *ShutdownConfig) Prefix() string
Prefix ...
Source Files
¶
- application_config.go
- base_config.go
- condition_router_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
- method_config.go
- metric_config.go
- mock_rpcservice.go
- protocol_config.go
- provider_config.go
- reference_config.go
- registry_config.go
- service.go
- service_config.go