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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
func (c *ConfigCenterConfig) GetUrlMap() url.Values
GetUrlMap ...
func (*ConfigCenterConfig) UnmarshalYAML ¶
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 ¶
func (c *ConsumerConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
type GenericService ¶
type GenericService struct { Invoke func(ctx context.Context, req []interface{}) (interface{}, error) `dubbo:"$invoke"` // contains filtered or unexported fields }
GenericService ...
func NewGenericService ¶
func NewGenericService(referenceStr string) *GenericService
NewGenericService ...
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 ¶
func (c *MethodConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
type MetricConfig ¶
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 ¶
func GetMetricConfig() *MetricConfig
GetMetricConfig find the MetricConfig if it is nil, create a new one
func (*MetricConfig) GetHistogramBucket ¶
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 ...
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 ¶
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 ¶
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 ¶
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 ¶
func (c *ServiceConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
type ShutdownConfig ¶
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 ¶
func (config *ShutdownConfig) GetStepTimeout() time.Duration
GetStepTimeout ...
func (*ShutdownConfig) GetTimeout ¶
func (config *ShutdownConfig) GetTimeout() time.Duration
GetTimeout ...
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