config

package
Version: v1.4.0-rc8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2020 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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 BeforeShutdown

func BeforeShutdown()

BeforeShutdown ...

func ConsumerInit

func ConsumerInit(confConFile string) error

ConsumerInit ...

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 GracefulShutdownInit

func GracefulShutdownInit()

GracefulShutdownInit ...

func Load

func Load()

Load Dubbo Init

func ProviderInit

func ProviderInit(confProFile string) error

ProviderInit ...

func RPCService

func RPCService(service common.RPCService)

RPCService create rpc service for consumer

func RouterInit

func RouterInit(confRouterFile string) error

RouterInit Load config file to init router config

func SetConsumerConfig

func SetConsumerConfig(c ConsumerConfig)

SetConsumerConfig ...

func SetConsumerService

func SetConsumerService(service common.RPCService)

SetConsumerService is called by init() of implement of RPCService

func SetProviderConfig

func SetProviderConfig(p ProviderConfig)

SetProviderConfig ...

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) Id

func (c *ApplicationConfig) Id() string

Id ...

func (*ApplicationConfig) Prefix

func (*ApplicationConfig) Prefix() string

Prefix ...

func (*ApplicationConfig) SetId

func (c *ApplicationConfig) SetId(id string)

SetId ...

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) Prefix

func (*ConsumerConfig) Prefix() string

Prefix ...

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 ...

func (*GenericService) Reference

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) Prefix

func (c *MethodConfig) Prefix() string

Prefix ...

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 ...

func (*MockService) GetUser1

func (*MockService) GetUser1(ctx context.Context, itf []interface{}, str *struct{}) error

GetUser1 ...

func (*MockService) Reference

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 ...

func (*ProtocolConfig) Prefix

func (c *ProtocolConfig) Prefix() string

Prefix ...

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) Prefix

func (*ProviderConfig) Prefix() string

Prefix ...

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) Prefix

func (c *ReferenceConfig) Prefix() string

Prefix ...

func (*ReferenceConfig) Refer

func (c *ReferenceConfig) Refer(_ interface{})

Refer ...

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) Prefix

func (*RegistryConfig) Prefix() string

Prefix ...

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) Export

func (c *ServiceConfig) Export() error

Export ...

func (*ServiceConfig) Implement

func (c *ServiceConfig) Implement(s common.RPCService)

Implement ...

func (*ServiceConfig) Prefix

func (c *ServiceConfig) Prefix() string

Prefix ...

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 ...

func (*ShutdownConfig) Prefix

func (config *ShutdownConfig) Prefix() string

Prefix ...

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto