Documentation ¶
Index ¶
- Constants
- Variables
- func GetContainerNameEnvList() []string
- func RegisterPluginConfigType(typ common.Type, name string, cfg BaseConfig)
- func ServiceClusterToServiceKey(config ServerClusterConfig) model.ServiceKey
- type APIConfig
- type APIConfigImpl
- func (a *APIConfigImpl) GetBindIP() string
- func (a *APIConfigImpl) GetBindIntf() string
- func (a *APIConfigImpl) GetMaxRetryTimes() int
- func (a *APIConfigImpl) GetReportInterval() time.Duration
- func (a *APIConfigImpl) GetRetryInterval() time.Duration
- func (a *APIConfigImpl) GetTimeout() time.Duration
- func (a *APIConfigImpl) SetBindIP(bindIPValue string)
- func (a *APIConfigImpl) SetBindIntf(bindIntf string)
- func (a *APIConfigImpl) SetDefault()
- func (a *APIConfigImpl) SetMaxRetryTimes(maxRetryTimes int)
- func (a *APIConfigImpl) SetReportInterval(interval time.Duration)
- func (a *APIConfigImpl) SetRetryInterval(interval time.Duration)
- func (a *APIConfigImpl) SetTimeout(timeout time.Duration)
- func (a *APIConfigImpl) Verify() error
- type BaseConfig
- type CircuitBreakerConfig
- type CircuitBreakerConfigImpl
- func (c *CircuitBreakerConfigImpl) GetChain() []string
- func (c *CircuitBreakerConfigImpl) GetCheckPeriod() time.Duration
- func (c *CircuitBreakerConfigImpl) GetErrorCountConfig() ErrorCountConfig
- func (c *CircuitBreakerConfigImpl) GetErrorRateConfig() ErrorRateConfig
- func (c *CircuitBreakerConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (c *CircuitBreakerConfigImpl) GetRecoverNumBuckets() int
- func (c *CircuitBreakerConfigImpl) GetRecoverWindow() time.Duration
- func (c *CircuitBreakerConfigImpl) GetRequestCountAfterHalfOpen() int
- func (c *CircuitBreakerConfigImpl) GetSleepWindow() time.Duration
- func (c *CircuitBreakerConfigImpl) GetSuccessCountAfterHalfOpen() int
- func (c *CircuitBreakerConfigImpl) Init()
- func (c *CircuitBreakerConfigImpl) IsEnable() bool
- func (c *CircuitBreakerConfigImpl) SetChain(chain []string)
- func (c *CircuitBreakerConfigImpl) SetCheckPeriod(period time.Duration)
- func (c *CircuitBreakerConfigImpl) SetDefault()
- func (c *CircuitBreakerConfigImpl) SetEnable(enable bool)
- func (c *CircuitBreakerConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (c *CircuitBreakerConfigImpl) SetRecoverNumBuckets(value int)
- func (c *CircuitBreakerConfigImpl) SetRecoverWindow(value time.Duration)
- func (c *CircuitBreakerConfigImpl) SetRequestCountAfterHalfOpen(count int)
- func (c *CircuitBreakerConfigImpl) SetSleepWindow(interval time.Duration)
- func (c *CircuitBreakerConfigImpl) SetSuccessCountAfterHalfOpen(count int)
- func (c *CircuitBreakerConfigImpl) Verify() error
- type ClusterService
- type ClusterType
- type Configuration
- type ConfigurationImpl
- func LoadConfiguration(buf []byte) (*ConfigurationImpl, error)
- func LoadConfigurationByDefaultFile() (*ConfigurationImpl, error)
- func LoadConfigurationByFile(path string) (*ConfigurationImpl, error)
- func NewDefaultConfiguration(addresses []string) *ConfigurationImpl
- func NewDefaultConfigurationWithDomain() *ConfigurationImpl
- type ConsumerConfig
- type ConsumerConfigImpl
- func (c *ConsumerConfigImpl) GetCircuitBreaker() CircuitBreakerConfig
- func (c *ConsumerConfigImpl) GetHealthCheck() HealthCheckConfig
- func (c *ConsumerConfigImpl) GetLoadbalancer() LoadbalancerConfig
- func (c *ConsumerConfigImpl) GetLocalCache() LocalCacheConfig
- func (c *ConsumerConfigImpl) GetServiceRouter() ServiceRouterConfig
- func (c *ConsumerConfigImpl) GetServiceSpecific(namespace string, service string) ServiceSpecificConfig
- func (c *ConsumerConfigImpl) GetSubScribe() SubscribeConfig
- func (c *ConsumerConfigImpl) Init()
- func (c *ConsumerConfigImpl) SetDefault()
- func (c *ConsumerConfigImpl) Verify() error
- type ErrorCountConfig
- type ErrorRateConfig
- type GlobalConfig
- type GlobalConfigImpl
- func (g *GlobalConfigImpl) GetAPI() APIConfig
- func (g *GlobalConfigImpl) GetServerConnector() ServerConnectorConfig
- func (g *GlobalConfigImpl) GetStatReporter() StatReporterConfig
- func (g *GlobalConfigImpl) GetSystem() SystemConfig
- func (g *GlobalConfigImpl) Init()
- func (g *GlobalConfigImpl) SetDefault()
- func (g *GlobalConfigImpl) Verify() error
- type HealthCheckConfig
- type HealthCheckConfigImpl
- func (h *HealthCheckConfigImpl) GetChain() []string
- func (h *HealthCheckConfigImpl) GetConcurrency() int
- func (h *HealthCheckConfigImpl) GetInterval() time.Duration
- func (h *HealthCheckConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (h *HealthCheckConfigImpl) GetTimeout() time.Duration
- func (h *HealthCheckConfigImpl) GetWhen() When
- func (h *HealthCheckConfigImpl) Init()
- func (h *HealthCheckConfigImpl) SetChain(chain []string)
- func (h *HealthCheckConfigImpl) SetConcurrency(value int)
- func (h *HealthCheckConfigImpl) SetDefault()
- func (h *HealthCheckConfigImpl) SetInterval(duration time.Duration)
- func (h *HealthCheckConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (h *HealthCheckConfigImpl) SetTimeout(duration time.Duration)
- func (h *HealthCheckConfigImpl) SetWhen(when When)
- func (h *HealthCheckConfigImpl) Verify() error
- type LoadBalancerConfigImpl
- func (l *LoadBalancerConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (l *LoadBalancerConfigImpl) GetType() string
- func (l *LoadBalancerConfigImpl) Init()
- func (l *LoadBalancerConfigImpl) SetDefault()
- func (l *LoadBalancerConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (l *LoadBalancerConfigImpl) SetType(typ string)
- func (l *LoadBalancerConfigImpl) Verify() error
- type LoadbalancerConfig
- type LocalCacheConfig
- type LocalCacheConfigImpl
- func (l *LocalCacheConfigImpl) GetPersistAvailableInterval() time.Duration
- func (l *LocalCacheConfigImpl) GetPersistDir() string
- func (l *LocalCacheConfigImpl) GetPersistMaxReadRetry() int
- func (l *LocalCacheConfigImpl) GetPersistMaxWriteRetry() int
- func (l *LocalCacheConfigImpl) GetPersistRetryInterval() time.Duration
- func (l *LocalCacheConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (l *LocalCacheConfigImpl) GetServiceExpireTime() time.Duration
- func (l *LocalCacheConfigImpl) GetServiceRefreshInterval() time.Duration
- func (l *LocalCacheConfigImpl) GetStartUseFileCache() bool
- func (l *LocalCacheConfigImpl) GetType() string
- func (l *LocalCacheConfigImpl) Init()
- func (l *LocalCacheConfigImpl) SetDefault()
- func (l *LocalCacheConfigImpl) SetPersistAvailableInterval(interval time.Duration)
- func (l *LocalCacheConfigImpl) SetPersistDir(dir string)
- func (l *LocalCacheConfigImpl) SetPersistMaxReadRetry(maxReadRetry int)
- func (l *LocalCacheConfigImpl) SetPersistMaxWriteRetry(maxWriteRetry int)
- func (l *LocalCacheConfigImpl) SetPersistRetryInterval(interval time.Duration)
- func (l *LocalCacheConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (l *LocalCacheConfigImpl) SetServiceExpireTime(expireTime time.Duration)
- func (l *LocalCacheConfigImpl) SetServiceRefreshInterval(interval time.Duration)
- func (l *LocalCacheConfigImpl) SetStartUseFileCache(useCacheFile bool)
- func (l *LocalCacheConfigImpl) SetType(typ string)
- func (l *LocalCacheConfigImpl) Verify() error
- type Matcher
- type NearbyConfig
- type PluginConfig
- type PluginConfigs
- func (p PluginConfigs) GetPluginConfig(pluginName string) BaseConfig
- func (p PluginConfigs) Init(typ common.Type)
- func (p PluginConfigs) SetDefault(typ common.Type)
- func (p PluginConfigs) SetPluginConfig(plugType common.Type, plugName string, value BaseConfig) error
- func (p PluginConfigs) Verify() error
- type ProviderConfig
- type ProviderConfigImpl
- type RateLimitConfig
- type RateLimitConfigImpl
- func (r *RateLimitConfigImpl) GetMaxWindowSize() int
- func (r *RateLimitConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (r *RateLimitConfigImpl) GetPurgeInterval() time.Duration
- func (r *RateLimitConfigImpl) GetRules() []RateLimitRule
- func (r *RateLimitConfigImpl) Init()
- func (r *RateLimitConfigImpl) IsEnable() bool
- func (r *RateLimitConfigImpl) SetDefault()
- func (r *RateLimitConfigImpl) SetEnable(value bool)
- func (r *RateLimitConfigImpl) SetMaxWindowSize(maxSize int)
- func (r *RateLimitConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (r *RateLimitConfigImpl) SetPurgeInterval(v time.Duration)
- func (r *RateLimitConfigImpl) SetRules(rules []RateLimitRule)
- func (r *RateLimitConfigImpl) Verify() error
- type RateLimitRule
- type ServerClusterConfig
- type ServerClusterConfigImpl
- func (s *ServerClusterConfigImpl) GetNamespace() string
- func (s *ServerClusterConfigImpl) GetRefreshInterval() time.Duration
- func (s *ServerClusterConfigImpl) GetService() string
- func (s *ServerClusterConfigImpl) SetDefault()
- func (s *ServerClusterConfigImpl) SetNamespace(namespace string)
- func (s *ServerClusterConfigImpl) SetRefreshInterval(interval time.Duration)
- func (s *ServerClusterConfigImpl) SetService(service string)
- func (s *ServerClusterConfigImpl) Verify() error
- type ServerConnectorConfig
- type ServerConnectorConfigImpl
- func (s *ServerConnectorConfigImpl) GetAddresses() []string
- func (s *ServerConnectorConfigImpl) GetConnectTimeout() time.Duration
- func (s *ServerConnectorConfigImpl) GetConnectionIdleTimeout() time.Duration
- func (s *ServerConnectorConfigImpl) GetMessageTimeout() time.Duration
- func (s *ServerConnectorConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (s *ServerConnectorConfigImpl) GetProtocol() string
- func (s *ServerConnectorConfigImpl) GetReconnectInterval() time.Duration
- func (s *ServerConnectorConfigImpl) GetRequestQueueSize() int32
- func (s *ServerConnectorConfigImpl) GetServerSwitchInterval() time.Duration
- func (s *ServerConnectorConfigImpl) Init()
- func (s *ServerConnectorConfigImpl) SetAddresses(addresses []string)
- func (s *ServerConnectorConfigImpl) SetConnectTimeout(timeout time.Duration)
- func (s *ServerConnectorConfigImpl) SetConnectionIdleTimeout(timeout time.Duration)
- func (s *ServerConnectorConfigImpl) SetDefault()
- func (s *ServerConnectorConfigImpl) SetMessageTimeout(timeout time.Duration)
- func (s *ServerConnectorConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (s *ServerConnectorConfigImpl) SetProtocol(protocol string)
- func (s *ServerConnectorConfigImpl) SetReconnectInterval(interval time.Duration)
- func (s *ServerConnectorConfigImpl) SetRequestQueueSize(queueSize int32)
- func (s *ServerConnectorConfigImpl) SetServerSwitchInterval(interval time.Duration)
- func (s *ServerConnectorConfigImpl) Verify() error
- type ServerServices
- type ServiceRouterConfig
- type ServiceRouterConfigImpl
- func (s *ServiceRouterConfigImpl) GetChain() []string
- func (s *ServiceRouterConfigImpl) GetNearbyConfig() NearbyConfig
- func (s *ServiceRouterConfigImpl) GetPercentOfMinInstances() float64
- func (s *ServiceRouterConfigImpl) GetPluginConfig(pluginName string) BaseConfig
- func (s *ServiceRouterConfigImpl) Init()
- func (s *ServiceRouterConfigImpl) IsEnableRecoverAll() bool
- func (s *ServiceRouterConfigImpl) SetChain(chain []string)
- func (s *ServiceRouterConfigImpl) SetDefault()
- func (s *ServiceRouterConfigImpl) SetEnableRecoverAll(recoverAll bool)
- func (s *ServiceRouterConfigImpl) SetPercentOfMinInstances(percent float64)
- func (s *ServiceRouterConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
- func (s *ServiceRouterConfigImpl) Verify() error
- type ServiceSpecific
- type ServiceSpecificConfig
- type ServicesSpecificImpl
- type StatReporterConfig
- type StatReporterConfigImpl
- func (s *StatReporterConfigImpl) GetChain() []string
- func (s *StatReporterConfigImpl) GetPluginConfig(name string) BaseConfig
- func (s *StatReporterConfigImpl) Init()
- func (s *StatReporterConfigImpl) IsEnable() bool
- func (s *StatReporterConfigImpl) SetChain(chain []string)
- func (s *StatReporterConfigImpl) SetDefault()
- func (s *StatReporterConfigImpl) SetEnable(enable bool)
- func (s *StatReporterConfigImpl) SetPluginConfig(plugName string, value BaseConfig) error
- func (s *StatReporterConfigImpl) Verify() error
- type SubscribeConfig
- type SubscribeImpl
- func (s *SubscribeImpl) GetPluginConfig(pluginName string) BaseConfig
- func (s *SubscribeImpl) GetType() string
- func (s *SubscribeImpl) Init()
- func (s *SubscribeImpl) SetDefault()
- func (s *SubscribeImpl) SetPluginConfig(plugName string, value BaseConfig) error
- func (s *SubscribeImpl) SetType(typeStr string)
- func (s *SubscribeImpl) Verify() error
- type SystemConfig
- type SystemConfigImpl
- func (s *SystemConfigImpl) GetDiscoverCluster() ServerClusterConfig
- func (s *SystemConfigImpl) GetHealthCheckCluster() ServerClusterConfig
- func (s *SystemConfigImpl) GetMode() model.RunMode
- func (s *SystemConfigImpl) GetMonitorCluster() ServerClusterConfig
- func (s *SystemConfigImpl) GetVariable(key string) (string, bool)
- func (s *SystemConfigImpl) Init()
- func (s *SystemConfigImpl) SetDefault()
- func (s *SystemConfigImpl) SetMode(mode model.RunMode)
- func (s *SystemConfigImpl) SetVariable(key, value string)
- func (s *SystemConfigImpl) UnsetVariable(key string)
- func (s *SystemConfigImpl) Verify() error
- type When
Constants ¶
const ( // HealthCheckNever never active health check HealthCheckNever When = "never" // HealthCheckAlways always active health check HealthCheckAlways = "always" // HealthCheckOnRecover active health check when instance has fail HealthCheckOnRecover = "on_recover" )
const ( // 默认API调用的超时时间 DefaultAPIInvokeTimeout = 1 * time.Second // 默认api调用重试次数 DefaultAPIMaxRetryTimes int = 1 // 默认api调用重试间隔 DefaultAPIRetryInterval = 1 * time.Second // 默认首次发现discovery服务重试间隔 DefaultDiscoverServiceRetryInterval = 5 * time.Second // 默认的服务超时淘汰时间 DefaultServiceExpireTime = 24 * time.Hour // 默认的服务刷新间隔 DefaultServiceRefreshIntervalDuration = 2 * time.Second // 默认SDK往Server连接超时时间间隔 DefaultServerConnectTimeout = 500 * time.Millisecond // 默认重连的间隔 DefaultReConnectInterval = 500 * time.Millisecond // 默认消息超时时间 DefaultServerMessageTimeout = 1500 * time.Millisecond // 默认服务端stream闲置超时时间 DefaultServerConnectionIdleTimeout = 3 * time.Second // 默认埋点server连接过期关闭时间 DefaultBuiltInServerConnectionCloseTimeout = 2 * DefaultServerConnectionIdleTimeout // 默认发送队列的buffer大小,支持的最大瞬时并发度,默认1000 DefaultRequestQueueSize int = 1000 // 默认server的切换时间时间 DefaultServerSwitchInterval = 10 * time.Minute // 默认缓存持久化存储目录 DefaultCachePersistDir string = "./polaris/backup" // 持久化缓存写文件的默认重试次数 DefaultPersistMaxWriteRetry int = 5 // 读取持久化缓存的默认重试次数 DefaultPersistMaxReadRetry = 1 // 默认持久化重试间隔时间 DefaultPersistRetryInterval = 1 * time.Second // 默认持久化文件有效时间 DefaultPersistAvailableInterval = 60 * time.Second // 默认熔断节点检查周期 DefaultCircuitBreakerCheckPeriod = 10 * time.Second // 最低熔断节点检查周期 MinCircuitBreakerCheckPeriod = 1 * time.Second // 熔断器默认开启与否 DefaultCircuitBreakerEnabled bool = true // 服务路由的全死全活默认开启与否 DefaultRecoverAllEnabled bool = true // 路由至少返回节点数百分比 DefaultPercentOfMinInstances float64 = 0.0 // DefaultHealthCheckConcurrency 默认心跳检测的并发数 DefaultHealthCheckConcurrency int = 1 // DefaultHealthCheckConcurrencyAlways 默认持续心跳检测的并发数 DefaultHealthCheckConcurrencyAlways int = 10 // DefaultHealthCheckInterval 默认健康探测周期 DefaultHealthCheckInterval = 10 * time.Second // MinHealthCheckInterval 最低健康探测周期 MinHealthCheckInterval = 500 * time.Millisecond // DefaultHealthCheckTimeout 默认健康探测超时时间 DefaultHealthCheckTimeout = 100 * time.Millisecond // 客户端信息上报周期,默认10分钟 DefaultReportClientIntervalDuration = 10 * time.Minute // 最大重定向次数,默认1 MaxRedirectTimes = 1 // sdk配置上报周期 DefaultReportSDKConfigurationInterval = 5 * time.Minute // 熔断周期,被熔断后多久变为半开 DefaultSleepWindow = 30 * time.Second // 最小熔断周期,1s MinSleepWindow = 1 * time.Second // 默认恢复周期,半开后按多久的统计窗口进行恢复统计 DefaultRecoverWindow = 60 * time.Second // 最小恢复周期,10s MinRecoverWindow = 10 * time.Second // 默认恢复统计的滑桶数 DefaultRecoverNumBuckets = 10 // 最小恢复统计的滑桶数 MinRecoverNumBuckets = 1 // 半开状态后分配的探测请求数 DefaultRequestCountAfterHalfOpen = 10 // 半开状态后恢复的成功请求数 DefaultSuccessCountAfterHalfOpen = 8 // 限流上报时间窗数量,上报间隔=时间间隔/时间窗数量 DefaultRateLimitWindowCount = 10 // 最小限流上报周期 MinRateLimitReportInterval = 10 * time.Millisecond // 限流默认和sever acquire配额间隔, 弃用 DefaultRateLimitAcquireInterval = 100 * time.Millisecond // 最大限流上报周期, 弃用 MaxRateLimitReportInterval = 5 * time.Second // 默认满足百分之80的请求后立刻限流上报 DefaultRateLimitReportAmountPresent = 80 // 最大实时上报百分比 MaxRateLimitReportAmountPresent = 100 // 最小实时上报百分比 MinRateLimitReportAmountPresent = 0 // 默认的名字分隔符 DefaultNamesSeparator = "#" // 默认Map组装str key value分割符 DefaultMapKeyValueSeparator = ":" // 默认Map组装str (key:value) 二元组分割符 DefaultMapKVTupleSeparator = "|" )
const ( // 默认的服务端连接器插件 DefaultServerConnector string = "grpc" // 默认本地缓存策略 DefaultLocalCache string = "inmemory" // 默认规则路由 DefaultServiceRouterRuleBased string = "ruleBasedRouter" // 默认只过滤健康实例的路由 DefaultServiceRouterFilterOnly string = "filterOnlyRouter" // 默认就近路由 DefaultServiceRouterNearbyBased string = "nearbyBasedRouter" // DefaultServiceRouterSetDivision 默认set分组 DefaultServiceRouterSetDivision string = "setDivisionRouter" // 默认基于目标元数据路由 DefaultServiceRouterDstMeta string = "dstMetaRouter" // 金丝雀路由 DefaultServiceRouterCanary string = "canaryRouter" // 默认负载均衡器,权重随机 DefaultLoadBalancerWR string = "weightedRandom" // 负载均衡器,一致性hash环 DefaultLoadBalancerRingHash string = "ringHash" // 负载均衡器,maglev hash DefaultLoadBalancerMaglev string = "maglev" // 负载均衡器,l5一致性hash兼容 DefaultLoadBalancerL5CST string = "l5cst" // 负载均衡器,普通hash DefaultLoadBalancerHash string = "hash" // 默认错误率熔断器 DefaultCircuitBreakerErrRate string = "errorRate" // 默认持续错误熔断器 DefaultCircuitBreakerErrCount string = "errorCount" // 默认错误探测熔断器 DefaultCircuitBreakerErrCheck string = "errorCheck" // 默认TCP探测器 DefaultTCPHealthCheck string = "tcp" // 默认UDP探测器 DefaultUDPHealthCheck string = "udp" // 默认的reject限流器 DefaultRejectRateLimiter = "reject" // 默认warmup限流器 DefaultWarmUpRateLimiter = "warmUp" // 默认的匀速限流器 DefaultUniformRateLimiter = "unirate" // 默认限流插件,预热匀速 DefaultWarmUpWaitLimiter = "warmup-wait" // 默认订阅事件处理插件 SubscribeLocalChannel = "subscribeLocalChannel" // 默认限流最大窗口数量 MaxRateLimitWindowSize = 20000 // 默认超时清理时延 DefaultRateLimitPurgeInterval = 1 * time.Minute )
const ( DefaultMatchLevel = "zone" RegionLevel = "region" ZoneLevel = "zone" CampusLevel = "campus" AllLevel = "" )
默认的就近路由配置
const ( DefaultStatReporter string = "stat2Monitor" DefaultCacheReporter string = "serviceCache" DefaultPluginReporter string = "pluginInfo" DefaultLoadBalanceReporter string = "lbInfo" DefaultRateLimitReporter string = "rateLimitRecord" DefaultServiceRouteReporter string = "serviceRoute" DefaultStatReportEnabled bool = false )
const ( DefaultMinServiceExpireTime = 5 * time.Second DefaultMaxServiceExpireCheckTime = 1 * time.Hour DefaultMinTimingInterval = 100 * time.Millisecond DefaultServerServiceRefreshInterval = 1 * time.Minute )
const ( ServerNamespace = "Polaris" ServerDiscoverService = "polaris.discover" ServerHeartBeatService = "polaris.healthcheck" ServerMonitorService = "polaris.monitor" )
默认注册中心服务名
const ( // TypeExact . TypeExact = "EXACT" // TypeRegex . TypeRegex = "REGEX" )
const (
// 系统默认配置文件
DefaultConfigFile = "./polaris.yaml"
)
const ForbidServerMetricService = "polaris.metric"
ForbidServerMetricService 已经禁用的限流集群名
Variables ¶
var ( DefaultServerServiceRouterChain = []string{DefaultServiceRouterDstMeta, DefaultServiceRouterNearbyBased} // 系统命名空间下的服务默认路由链 DefaultPolarisServicesRouterChain = []string{DefaultServiceRouterDstMeta} DefaultServerServiceToLoadBalancer = map[ClusterType]string{ DiscoverCluster: DefaultLoadBalancerWR, HealthCheckCluster: DefaultLoadBalancerMaglev, MonitorCluster: DefaultLoadBalancerMaglev, } DefaultServerServiceToUseDefault = map[ClusterType]bool{ DiscoverCluster: true, HealthCheckCluster: true, } )
系统服务相关变量
var ( // 默认打开限流能力 DefaultRateLimitEnable = true )
var (
DefaultUseFileCacheFlag = true
)
Functions ¶
func GetContainerNameEnvList ¶
func GetContainerNameEnvList() []string
GetContainerNameEnvList 获取可以从获取的容器
func RegisterPluginConfigType ¶
func RegisterPluginConfigType(typ common.Type, name string, cfg BaseConfig)
RegisterPlugin 注册插件到全局配置对象,并注册插件配置类型
func ServiceClusterToServiceKey ¶
func ServiceClusterToServiceKey(config ServerClusterConfig) model.ServiceKey
ServiceClusterToServiceKey 服务集群信息转换为服务对象
Types ¶
type APIConfig ¶
type APIConfig interface { BaseConfig // GetTimeout global.api.timeout // 默认调用超时时间 GetTimeout() time.Duration // SetTimeout 设置默认调用超时时间 SetTimeout(time.Duration) // GetBindIntf global.api.bindIf // 默认客户端绑定的网卡地址 GetBindIntf() string // SetBindIntf 设置默认客户端绑定的网卡地址 SetBindIntf(string) // GetBindIP global.api.bindIP // 默认客户端绑定的IP地址 GetBindIP() string // SetBindIP 设置默认客户端绑定的IP地址 SetBindIP(string) // GetReportInterval global.api.reportInterval // 默认客户端定时上报周期 GetReportInterval() time.Duration // SetReportInterval 设置默认客户端定时上报周期 SetReportInterval(time.Duration) // GetMaxRetryTimes global.api.maxRetryTimes // api调用最多重试时间 GetMaxRetryTimes() int // SetMaxRetryTimes 设置api调用最多重试时间 SetMaxRetryTimes(int) // GetRetryInterval global.api.retryInterval // api调用重试时间 GetRetryInterval() time.Duration // SetRetryInterval 设置api调用重试时间 SetRetryInterval(time.Duration) }
APIConfig api相关的配置对象
type APIConfigImpl ¶
type APIConfigImpl struct { Timeout *time.Duration `yaml:"timeout" json:"timeout"` BindIntf string `yaml:"bindIf" json:"bindIf"` BindIP string `yaml:"bindIP" json:"bindIP"` BindIPValue string `yaml:"-" json:"-"` ReportInterval *time.Duration `yaml:"reportInterval" json:"reportInterval"` MaxRetryTimes int `yaml:"maxRetryTimes" json:"maxRetryTimes"` RetryInterval *time.Duration `yaml:"retryInterval" json:"retryInterval"` }
APIConfigImpl API访问相关的配置
func (*APIConfigImpl) GetBindIntf ¶
func (a *APIConfigImpl) GetBindIntf() string
GetBindIntf 默认客户端绑定的网卡地址
func (*APIConfigImpl) GetMaxRetryTimes ¶
func (a *APIConfigImpl) GetMaxRetryTimes() int
GetMaxRetryTimes 最大重试次数
func (*APIConfigImpl) GetReportInterval ¶
func (a *APIConfigImpl) GetReportInterval() time.Duration
GetReportInterval 默认客户端上报周期
func (*APIConfigImpl) GetRetryInterval ¶
func (a *APIConfigImpl) GetRetryInterval() time.Duration
GetRetryInterval 重试周期
func (*APIConfigImpl) GetTimeout ¶
func (a *APIConfigImpl) GetTimeout() time.Duration
GetTimeout 默认调用超时时间
func (*APIConfigImpl) SetBindIP ¶
func (a *APIConfigImpl) SetBindIP(bindIPValue string)
SetBindIP 设置默认客户端绑定的网卡地址
func (*APIConfigImpl) SetBindIntf ¶
func (a *APIConfigImpl) SetBindIntf(bindIntf string)
SetBindIntf 设置默认客户端绑定的网卡地址
func (*APIConfigImpl) SetMaxRetryTimes ¶
func (a *APIConfigImpl) SetMaxRetryTimes(maxRetryTimes int)
SetMaxRetryTimes 最大重试次数
func (*APIConfigImpl) SetReportInterval ¶
func (a *APIConfigImpl) SetReportInterval(interval time.Duration)
SetReportInterval 设置默认客户端上报周期
func (*APIConfigImpl) SetRetryInterval ¶
func (a *APIConfigImpl) SetRetryInterval(interval time.Duration)
SetRetryInterval 重试周期
func (*APIConfigImpl) SetTimeout ¶
func (a *APIConfigImpl) SetTimeout(timeout time.Duration)
SetTimeout 设置默认超时时间
type BaseConfig ¶
type BaseConfig interface { // 校验配置是否OK Verify() error // 对关键值设置默认值 SetDefault() }
自身自带校验器的配置集合
type CircuitBreakerConfig ¶
type CircuitBreakerConfig interface { BaseConfig PluginConfig // IsEnable 是否启用熔断 IsEnable() bool // SetEnable 设置是否启用熔断 SetEnable(bool) // GetChain 熔断器插件链 GetChain() []string // SetChain 设置熔断器插件链 SetChain([]string) // GetCheckPeriod 熔断器定时检测时间 GetCheckPeriod() time.Duration // SetCheckPeriod 设置熔断器定时检测时间 SetCheckPeriod(time.Duration) // GetSleepWindow 获取熔断周期 GetSleepWindow() time.Duration // SetSleepWindow 设置熔断周期 SetSleepWindow(interval time.Duration) // GetRequestCountAfterHalfOpen 获取半开状态后最多分配多少个探测请求 GetRequestCountAfterHalfOpen() int // SetRequestCountAfterHalfOpen 设置半开状态后最多分配多少个探测请求 SetRequestCountAfterHalfOpen(count int) // GetSuccessCountAfterHalfOpen 获取半开状态后多少个成功请求则恢复 GetSuccessCountAfterHalfOpen() int // SetSuccessCountAfterHalfOpen 设置半开状态后多少个成功请求则恢复 SetSuccessCountAfterHalfOpen(count int) // GetRecoverWindow 获取半开后的恢复周期,按周期来进行半开放量的统计 GetRecoverWindow() time.Duration // SetRecoverWindow 设置半开后的恢复周期,按周期来进行半开放量的统计 SetRecoverWindow(value time.Duration) // GetRecoverNumBuckets 半开后请求数统计滑桶数量 GetRecoverNumBuckets() int // SetRecoverNumBuckets 设置半开后请求数统计滑桶数量 SetRecoverNumBuckets(value int) // GetErrorCountConfig 连续错误数熔断配置 GetErrorCountConfig() ErrorCountConfig // GetErrorRateConfig 错误率熔断配置 GetErrorRateConfig() ErrorRateConfig }
CircuitBreakerConfig 熔断相关的配置项
type CircuitBreakerConfigImpl ¶
type CircuitBreakerConfigImpl struct { // Enable 是否启动熔断 Enable *bool `yaml:"enable" json:"enable"` // CheckPeriod 熔断器定时检查周期 CheckPeriod *time.Duration `yaml:"checkPeriod" json:"checkPeriod"` // Chain 熔断插件链 Chain []string `yaml:"chain"` // SleepWindow 熔断周期,被熔断后多久可以变为半开 SleepWindow *time.Duration `yaml:"sleepWindow" json:"sleepWindow"` // RequestCountAfterHalfOpen 半开状态后最多分配多少个探测请求 RequestCountAfterHalfOpen int `yaml:"requestCountAfterHalfOpen" json:"requestCountAfterHalfOpen"` // SuccessCountAfterHalfOpen 半开状态后多少个成功请求则恢复 SuccessCountAfterHalfOpen int `yaml:"successCountAfterHalfOpen" json:"successCountAfterHalfOpen"` // RecoverWindow 半开后的恢复周期,在这个周期内统计成功数 RecoverWindow *time.Duration `yaml:"recoverWindow" json:"recoverWindow"` // RecoverNumBuckets 半开后的统计的滑窗数 RecoverNumBuckets int `yaml:"recoverNumBuckets" json:"recoverNumBuckets"` // Plugin 插件配置反序列化后的对象 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
CircuitBreakerConfigImpl 熔断相关配置
func (*CircuitBreakerConfigImpl) GetChain ¶
func (c *CircuitBreakerConfigImpl) GetChain() []string
GetChain 熔断器插件链
func (*CircuitBreakerConfigImpl) GetCheckPeriod ¶
func (c *CircuitBreakerConfigImpl) GetCheckPeriod() time.Duration
GetCheckPeriod 熔断器定时检测时间
func (*CircuitBreakerConfigImpl) GetErrorCountConfig ¶
func (c *CircuitBreakerConfigImpl) GetErrorCountConfig() ErrorCountConfig
GetErrorCountConfig 获取连续错误数熔断配置
func (*CircuitBreakerConfigImpl) GetErrorRateConfig ¶
func (c *CircuitBreakerConfigImpl) GetErrorRateConfig() ErrorRateConfig
GetErrorRateConfig 错误率熔断配置
func (*CircuitBreakerConfigImpl) GetPluginConfig ¶
func (c *CircuitBreakerConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig 获取一个熔断器插件配置
func (*CircuitBreakerConfigImpl) GetRecoverNumBuckets ¶
func (c *CircuitBreakerConfigImpl) GetRecoverNumBuckets() int
GetRecoverNumBuckets 半开后请求数统计滑桶数量
func (*CircuitBreakerConfigImpl) GetRecoverWindow ¶
func (c *CircuitBreakerConfigImpl) GetRecoverWindow() time.Duration
GetRecoverWindow 获取半开后的恢复周期,按周期来进行半开放量的统计
func (*CircuitBreakerConfigImpl) GetRequestCountAfterHalfOpen ¶
func (c *CircuitBreakerConfigImpl) GetRequestCountAfterHalfOpen() int
GetRequestCountAfterHalfOpen 获取半开状态后最多分配多少个探测请求
func (*CircuitBreakerConfigImpl) GetSleepWindow ¶
func (c *CircuitBreakerConfigImpl) GetSleepWindow() time.Duration
GetSleepWindow 获取熔断周期
func (*CircuitBreakerConfigImpl) GetSuccessCountAfterHalfOpen ¶
func (c *CircuitBreakerConfigImpl) GetSuccessCountAfterHalfOpen() int
GetSuccessCountAfterHalfOpen 获取半开状态后多少个成功请求则恢复
func (*CircuitBreakerConfigImpl) Init ¶
func (c *CircuitBreakerConfigImpl) Init()
Init 初始化CircuitBreakerConfigImpl配置
func (*CircuitBreakerConfigImpl) IsEnable ¶
func (c *CircuitBreakerConfigImpl) IsEnable() bool
IsEnable 是否启用熔断
func (*CircuitBreakerConfigImpl) SetChain ¶
func (c *CircuitBreakerConfigImpl) SetChain(chain []string)
SetChain 设置熔断器插件链
func (*CircuitBreakerConfigImpl) SetCheckPeriod ¶
func (c *CircuitBreakerConfigImpl) SetCheckPeriod(period time.Duration)
SetCheckPeriod 设置熔断器定时检测时间
func (*CircuitBreakerConfigImpl) SetDefault ¶
func (c *CircuitBreakerConfigImpl) SetDefault()
SetDefault 设置CircuitBreakerConfigImpl配置的默认值
func (*CircuitBreakerConfigImpl) SetEnable ¶
func (c *CircuitBreakerConfigImpl) SetEnable(enable bool)
SetEnable 设置是否启用熔断
func (*CircuitBreakerConfigImpl) SetPluginConfig ¶
func (c *CircuitBreakerConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig 设置一个熔断器插件配置
func (*CircuitBreakerConfigImpl) SetRecoverNumBuckets ¶
func (c *CircuitBreakerConfigImpl) SetRecoverNumBuckets(value int)
SetRecoverNumBuckets 设置半开后请求数统计滑桶数量
func (*CircuitBreakerConfigImpl) SetRecoverWindow ¶
func (c *CircuitBreakerConfigImpl) SetRecoverWindow(value time.Duration)
SetRecoverWindow 设置半开后的恢复周期,按周期来进行半开放量的统计
func (*CircuitBreakerConfigImpl) SetRequestCountAfterHalfOpen ¶
func (c *CircuitBreakerConfigImpl) SetRequestCountAfterHalfOpen(count int)
SetRequestCountAfterHalfOpen 设置半开状态后最多分配多少个探测请求
func (*CircuitBreakerConfigImpl) SetSleepWindow ¶
func (c *CircuitBreakerConfigImpl) SetSleepWindow(interval time.Duration)
SetSleepWindow 设置熔断周期
func (*CircuitBreakerConfigImpl) SetSuccessCountAfterHalfOpen ¶
func (c *CircuitBreakerConfigImpl) SetSuccessCountAfterHalfOpen(count int)
SetSuccessCountAfterHalfOpen 设置半开状态后多少个成功请求则恢复
func (*CircuitBreakerConfigImpl) Verify ¶
func (c *CircuitBreakerConfigImpl) Verify() error
Verify 检验LocalCacheConfig配置
type ClusterService ¶
type ClusterService struct { model.ServiceKey ClusterType ClusterType ClusterConfig ServerClusterConfig }
server集群服务信息
type ClusterType ¶
type ClusterType string
集群类型,用以标识系统服务集群
const ( BuiltinCluster ClusterType = "builtin" DiscoverCluster ClusterType = "discover" HealthCheckCluster ClusterType = "healthCheck" MonitorCluster ClusterType = "monitor" )
默认集群类型
type Configuration ¶
type Configuration interface { BaseConfig // GetGlobal global前缀开头的所有配置项 GetGlobal() GlobalConfig // GetConsumer consumer前缀开头的所有配置项 GetConsumer() ConsumerConfig // GetProvider provider前缀开头的所有配置项 GetProvider() ProviderConfig }
Configuration 全量配置对象
type ConfigurationImpl ¶
type ConfigurationImpl struct { Global *GlobalConfigImpl `yaml:"global" json:"global"` Consumer *ConsumerConfigImpl `yaml:"consumer" json:"consumer"` Provider *ProviderConfigImpl `yaml:"provider" json:"provider"` }
ConfigurationImpl cl5全局配置
func LoadConfiguration ¶
func LoadConfiguration(buf []byte) (*ConfigurationImpl, error)
LoadConfiguration 加载配置项
func LoadConfigurationByDefaultFile ¶
func LoadConfigurationByDefaultFile() (*ConfigurationImpl, error)
LoadConfigurationByDefaultFile 通过默认配置文件加载配置项
func LoadConfigurationByFile ¶
func LoadConfigurationByFile(path string) (*ConfigurationImpl, error)
LoadConfigurationByFile 通过文件加载配置项
func NewDefaultConfiguration ¶
func NewDefaultConfiguration(addresses []string) *ConfigurationImpl
NewDefaultConfiguration 创建默认配置对象
func NewDefaultConfigurationWithDomain ¶
func NewDefaultConfigurationWithDomain() *ConfigurationImpl
NewDefaultConfigurationWithDomain 创建带有默认埋点server域名的默认配置
func (*ConfigurationImpl) GetConsumer ¶
func (c *ConfigurationImpl) GetConsumer() ConsumerConfig
GetConsumer cl5.consumer前缀开头的所有配置项
func (*ConfigurationImpl) GetGlobal ¶
func (c *ConfigurationImpl) GetGlobal() GlobalConfig
GetGlobal cl5.global前缀开头的所有配置项
func (*ConfigurationImpl) GetProvider ¶
func (c *ConfigurationImpl) GetProvider() ProviderConfig
GetProvider consumer前缀开头的所有配置项
func (*ConfigurationImpl) SetDefault ¶
func (c *ConfigurationImpl) SetDefault()
设置consumerConfig配置的默认值
type ConsumerConfig ¶
type ConsumerConfig interface { BaseConfig // GetLocalCache get local cache config GetLocalCache() LocalCacheConfig // GetServiceRouter get service router config GetServiceRouter() ServiceRouterConfig // GetLoadbalancer get load balancer config GetLoadbalancer() LoadbalancerConfig // GetCircuitBreaker get circuit breaker config GetCircuitBreaker() CircuitBreakerConfig // GetHealthCheck get health check config GetHealthCheck() HealthCheckConfig // GetSubScribe get subscribe config GetSubScribe() SubscribeConfig // GetServiceSpecific 服务独立配置 GetServiceSpecific(namespace string, service string) ServiceSpecificConfig }
ConsumerConfig consumer config object
type ConsumerConfigImpl ¶
type ConsumerConfigImpl struct { LocalCache *LocalCacheConfigImpl `yaml:"localCache" json:"localCache"` ServiceRouter *ServiceRouterConfigImpl `yaml:"serviceRouter" json:"serviceRouter"` Loadbalancer *LoadBalancerConfigImpl `yaml:"loadbalancer" json:"loadbalancer"` CircuitBreaker *CircuitBreakerConfigImpl `yaml:"circuitBreaker" json:"circuitBreaker"` HealthCheck *HealthCheckConfigImpl `yaml:"healthCheck" json:"healthCheck"` Subscribe *SubscribeImpl `yaml:"subscribe" json:"subscribe"` ServicesSpecific []*ServiceSpecific `yaml:"servicesSpecific" json:"servicesSpecific"` }
ConsumerConfigImpl 消费者配置
func (*ConsumerConfigImpl) GetCircuitBreaker ¶
func (c *ConsumerConfigImpl) GetCircuitBreaker() CircuitBreakerConfig
GetCircuitBreaker consumer.circuitbreaker前缀开头的所有配置
func (*ConsumerConfigImpl) GetHealthCheck ¶
func (c *ConsumerConfigImpl) GetHealthCheck() HealthCheckConfig
GetHealthCheck get health check config
func (*ConsumerConfigImpl) GetLoadbalancer ¶
func (c *ConsumerConfigImpl) GetLoadbalancer() LoadbalancerConfig
GetLoadbalancer consumer.loadbalancer前缀开头的所有配置
func (*ConsumerConfigImpl) GetLocalCache ¶
func (c *ConsumerConfigImpl) GetLocalCache() LocalCacheConfig
GetLocalCache consumer.localCache前缀开头的所有配置
func (*ConsumerConfigImpl) GetServiceRouter ¶
func (c *ConsumerConfigImpl) GetServiceRouter() ServiceRouterConfig
GetServiceRouter consumer.serviceRouter前缀开头的所有配置
func (*ConsumerConfigImpl) GetServiceSpecific ¶
func (c *ConsumerConfigImpl) GetServiceSpecific(namespace string, service string) ServiceSpecificConfig
GetServiceSpecific 服务独立配置
func (*ConsumerConfigImpl) GetSubScribe ¶
func (c *ConsumerConfigImpl) GetSubScribe() SubscribeConfig
GetSubScribe 订阅配置
func (*ConsumerConfigImpl) SetDefault ¶
func (c *ConsumerConfigImpl) SetDefault()
设置consumerConfig配置的默认值
type ErrorCountConfig ¶
type ErrorCountConfig interface { // 连续错误数阈值 GetContinuousErrorThreshold() int // 设置连续错误数阈值 SetContinuousErrorThreshold(int) // 连续错误数统计时间窗口 GetMetricStatTimeWindow() time.Duration // 设置连续错误数统计时间窗口 SetMetricStatTimeWindow(time.Duration) // 连续错误数统计滑桶数量 GetMetricNumBuckets() int // 设置连续错误数统计滑桶数量 SetMetricNumBuckets(int) // 获取单个滑桶的时间间隔 GetBucketInterval() time.Duration }
ErrorCountConfig 连续错误数熔断配置
type ErrorRateConfig ¶
type ErrorRateConfig interface { // 触发错误率熔断的请求量阈值 GetRequestVolumeThreshold() int // 设置触发错误率熔断的请求量阈值 SetRequestVolumeThreshold(int) // 触发熔断的错误率阈值,取值范围(0, 100] GetErrorRatePercent() int // 设置错误率阈值 SetErrorRatePercent(int) // 错误率统计时间窗口 GetMetricStatTimeWindow() time.Duration // 设置错误率统计时间窗口 SetMetricStatTimeWindow(time.Duration) // 统计窗口细分的桶数量 GetMetricNumBuckets() int // 设置统计窗口细分的桶数量 SetMetricNumBuckets(int) // 获取单个滑桶的时间间隔 GetBucketInterval() time.Duration }
ErrorRateConfig 错误率熔断配置
type GlobalConfig ¶
type GlobalConfig interface { BaseConfig // GetSystem . GetSystem() SystemConfig // GetAPI global.api前缀开头的所有配置项 GetAPI() APIConfig // GetServerConnector global.serverConnector前缀开头的所有配置项 GetServerConnector() ServerConnectorConfig // GetStatReporter global.statReporter前缀开头的所有配置项 GetStatReporter() StatReporterConfig }
GlobalConfig 全局配置对象
type GlobalConfigImpl ¶
type GlobalConfigImpl struct { System *SystemConfigImpl `yaml:"system" json:"system"` API *APIConfigImpl `yaml:"api" json:"api"` ServerConnector *ServerConnectorConfigImpl `yaml:"serverConnector" json:"serverConnector"` StatReporter *StatReporterConfigImpl `yaml:"statReporter" json:"statReporter"` }
GlobalConfigImpl 全局配置
func (*GlobalConfigImpl) GetAPI ¶
func (g *GlobalConfigImpl) GetAPI() APIConfig
GetAPI global.api前缀开头的所有配置项
func (*GlobalConfigImpl) GetServerConnector ¶
func (g *GlobalConfigImpl) GetServerConnector() ServerConnectorConfig
GetServerConnector global.serverConnector前缀开头的所有配置项
func (*GlobalConfigImpl) GetStatReporter ¶
func (g *GlobalConfigImpl) GetStatReporter() StatReporterConfig
GetStatReporter cl5.global.statReporter前缀开头的所有配置项
func (*GlobalConfigImpl) GetSystem ¶
func (g *GlobalConfigImpl) GetSystem() SystemConfig
GetSystem 获取系统配置
type HealthCheckConfig ¶
type HealthCheckConfig interface { BaseConfig PluginConfig // GetWhen get when to active health check GetWhen() When // SetWhen set when to active health check SetWhen(When) // GetInterval get health check interval GetInterval() time.Duration // SetInterval set health check interval SetInterval(duration time.Duration) // GetTimeout get health check max timeout GetTimeout() time.Duration // SetTimeout set health check max timeout SetTimeout(duration time.Duration) // GetConcurrency get concurrency to execute the health check jobs GetConcurrency() int // SetConcurrency set concurrency to execute the health check jobs SetConcurrency(int) // GetChain get health checking chain GetChain() []string // SetChain set health checking chain SetChain([]string) }
HealthCheckConfig active health check config
type HealthCheckConfigImpl ¶
type HealthCheckConfigImpl struct { When When `yaml:"when" json:"when"` Interval time.Duration `yaml:"interval" json:"interval"` Timeout time.Duration `yaml:"timeout" json:"timeout"` Chain []string `yaml:"chain" json:"chain"` Concurrency int `yaml:"concurrency" json:"concurrency"` Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
HealthCheckConfigImpl health check config implementation
func (*HealthCheckConfigImpl) GetChain ¶
func (h *HealthCheckConfigImpl) GetChain() []string
GetChain get health checking chain
func (*HealthCheckConfigImpl) GetConcurrency ¶
func (h *HealthCheckConfigImpl) GetConcurrency() int
GetConcurrency get concurrency to execute the health check jobs
func (*HealthCheckConfigImpl) GetInterval ¶
func (h *HealthCheckConfigImpl) GetInterval() time.Duration
GetInterval get health check interval
func (*HealthCheckConfigImpl) GetPluginConfig ¶
func (h *HealthCheckConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig get plugin config by name
func (*HealthCheckConfigImpl) GetTimeout ¶
func (h *HealthCheckConfigImpl) GetTimeout() time.Duration
GetTimeout get health check max timeout
func (*HealthCheckConfigImpl) GetWhen ¶
func (h *HealthCheckConfigImpl) GetWhen() When
GetWhen get when to active health check
func (*HealthCheckConfigImpl) Init ¶
func (h *HealthCheckConfigImpl) Init()
Init 初始化CircuitBreakerConfigImpl配置
func (*HealthCheckConfigImpl) SetChain ¶
func (h *HealthCheckConfigImpl) SetChain(chain []string)
SetChain set health checking chain
func (*HealthCheckConfigImpl) SetConcurrency ¶
func (h *HealthCheckConfigImpl) SetConcurrency(value int)
SetConcurrency set concurrency to execute the health check jobs
func (*HealthCheckConfigImpl) SetDefault ¶
func (h *HealthCheckConfigImpl) SetDefault()
SetDefault set default values to healthCheckConfig
func (*HealthCheckConfigImpl) SetInterval ¶
func (h *HealthCheckConfigImpl) SetInterval(duration time.Duration)
SetInterval set health check interval
func (*HealthCheckConfigImpl) SetPluginConfig ¶
func (h *HealthCheckConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig set plugin config by name
func (*HealthCheckConfigImpl) SetTimeout ¶
func (h *HealthCheckConfigImpl) SetTimeout(duration time.Duration)
SetTimeout set health check max timeout
func (*HealthCheckConfigImpl) SetWhen ¶
func (h *HealthCheckConfigImpl) SetWhen(when When)
SetWhen set when to active health check
func (*HealthCheckConfigImpl) Verify ¶
func (h *HealthCheckConfigImpl) Verify() error
Verify verify the healthCheckConfig
type LoadBalancerConfigImpl ¶
type LoadBalancerConfigImpl struct { // 负载均衡类型 Type string `yaml:"type" json:"type"` // 插件相关配置 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
LoadBalancerConfigImpl 负载均衡配置
func (*LoadBalancerConfigImpl) GetPluginConfig ¶
func (l *LoadBalancerConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig consumer.loadbalancer.plugin
func (*LoadBalancerConfigImpl) GetType ¶
func (l *LoadBalancerConfigImpl) GetType() string
GetType 负载均衡类型
func (*LoadBalancerConfigImpl) SetDefault ¶
func (l *LoadBalancerConfigImpl) SetDefault()
SetDefault 设置LocalCacheConfig配置的默认值
func (*LoadBalancerConfigImpl) SetPluginConfig ¶
func (l *LoadBalancerConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig 输出插件具体配置
func (*LoadBalancerConfigImpl) SetType ¶
func (l *LoadBalancerConfigImpl) SetType(typ string)
SetType 设置负载均衡类型
func (*LoadBalancerConfigImpl) Verify ¶
func (l *LoadBalancerConfigImpl) Verify() error
Verify 检验LocalCacheConfig配置
type LoadbalancerConfig ¶
type LoadbalancerConfig interface { BaseConfig PluginConfig // GetType 负载均衡类型 GetType() string // SetType 设置负载均衡类型 SetType(string) }
LoadbalancerConfig 负载均衡相关配置项
type LocalCacheConfig ¶
type LocalCacheConfig interface { BaseConfig PluginConfig // GetServiceExpireTime consumer.localCache.service.expireTime, // 服务的超时淘汰时间 GetServiceExpireTime() time.Duration // SetServiceExpireTime 设置服务的超时淘汰时间 SetServiceExpireTime(time.Duration) // GetServiceRefreshInterval consumer.localCache.service.refreshInterval // 服务的定期刷新时间 GetServiceRefreshInterval() time.Duration // SetServiceRefreshInterval 设置服务的定期刷新时间 SetServiceRefreshInterval(time.Duration) // GetPersistDir consumer.localCache.persistDir // 本地缓存持久化路径 GetPersistDir() string // SetPersistDir 设置本地缓存持久化路径 SetPersistDir(string) // GetType consumer.localCache.type // 本地缓存类型,默认default,可修改成具体的缓存插件名 GetType() string // SetType 设置本地缓存类型 SetType(string) // GetPersistMaxWriteRetry consumer.localCache.persistMaxWriteRetry // 缓存最大写重试次数 GetPersistMaxWriteRetry() int // SetPersistMaxWriteRetry 设置缓存最大写重试次数 SetPersistMaxWriteRetry(int) // GetPersistMaxReadRetry consumer.localCache.persistMaxReadRetry // 缓存最大读重试次数 GetPersistMaxReadRetry() int // SetPersistMaxReadRetry 设置缓存最大读重试次数 SetPersistMaxReadRetry(int) // GetPersistRetryInterval consumer.localCache.persistRetryInterval // 缓存持久化重试间隔 GetPersistRetryInterval() time.Duration // SetPersistRetryInterval 设置缓存持久化重试间隔 SetPersistRetryInterval(time.Duration) // GetPersistAvailableInterval 获取缓存文件有效时间 GetPersistAvailableInterval() time.Duration // SetPersistAvailableInterval 设置缓存文件有效时间 SetPersistAvailableInterval(interval time.Duration) // GetStartUseFileCache 获取是否可以直接使用缓存标签 GetStartUseFileCache() bool // SetStartUseFileCache 设置是否可以直接使用缓存 SetStartUseFileCache(useCacheFile bool) }
LocalCacheConfig 本地缓存相关配置项
type LocalCacheConfigImpl ¶
type LocalCacheConfigImpl struct { // consumer.localCache.service.expireTime, // 服务的超时淘汰时间 ServiceExpireTime *time.Duration `yaml:"serviceExpireTime" json:"serviceExpireTime"` // consumer.localCache.service.refreshInterval // 服务的定期刷新时间 ServiceRefreshInterval *time.Duration `yaml:"serviceRefreshInterval" json:"serviceRefreshInterval"` // consumer.localCache.persistDir // 本地缓存持久化路径 PersistDir string `yaml:"persistDir" json:"persistDir"` // consumer.localCache.type // 本地缓存类型,默认inmemory,可修改成具体的缓存插件名 Type string `yaml:"type" json:"type"` // consumer.localCache.persistMaxWriteRetry PersistMaxWriteRetry int `yaml:"persistMaxWriteRetry" json:"persistMaxWriteRetry"` // consumer.localCache.persistReadRetry PersistMaxReadRetry int `yaml:"persistMaxReadRetry" json:"persistMaxReadRetry"` // consumer.localCache.persistRetryInterval PersistRetryInterval *time.Duration `yaml:"persistRetryInterval" json:"persistRetryInterval"` // 缓存文件有效时间差值 PersistAvailableInterval *time.Duration `yaml:"persistAvailableInterval" json:"persistAvailableInterval"` // 启动后,首次名字服务是否可以使用缓存文件 StartUseFileCache *bool `yaml:"startUseFileCache" json:"startUseFileCache"` // 插件相关配置 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
LocalCacheConfigImpl 本地缓存配置
func (*LocalCacheConfigImpl) GetPersistAvailableInterval ¶
func (l *LocalCacheConfigImpl) GetPersistAvailableInterval() time.Duration
GetPersistAvailableInterval
func (*LocalCacheConfigImpl) GetPersistDir ¶
func (l *LocalCacheConfigImpl) GetPersistDir() string
GetPersistDir consumer.localCache.persist.path 本地缓存持久化路径
func (*LocalCacheConfigImpl) GetPersistMaxReadRetry ¶
func (l *LocalCacheConfigImpl) GetPersistMaxReadRetry() int
GetPersistMaxReadRetry
func (*LocalCacheConfigImpl) GetPersistMaxWriteRetry ¶
func (l *LocalCacheConfigImpl) GetPersistMaxWriteRetry() int
GetPersistMaxWriteRetry
func (*LocalCacheConfigImpl) GetPersistRetryInterval ¶
func (l *LocalCacheConfigImpl) GetPersistRetryInterval() time.Duration
GetPersistRetryInterval
func (*LocalCacheConfigImpl) GetPluginConfig ¶
func (l *LocalCacheConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig consumer.localCache.plugin
func (*LocalCacheConfigImpl) GetServiceExpireTime ¶
func (l *LocalCacheConfigImpl) GetServiceExpireTime() time.Duration
GetServiceExpireTime consumer.localCache.service.expireTime, 服务的超时淘汰时间
func (*LocalCacheConfigImpl) GetServiceRefreshInterval ¶
func (l *LocalCacheConfigImpl) GetServiceRefreshInterval() time.Duration
GetServiceRefreshInterval consumer.localCache.service.refreshInterval 服务的定期刷新间隔
func (*LocalCacheConfigImpl) GetStartUseFileCache ¶
func (l *LocalCacheConfigImpl) GetStartUseFileCache() bool
GetStartUseFileCache 获取是否可以直接使用缓存标签
func (*LocalCacheConfigImpl) GetType ¶
func (l *LocalCacheConfigImpl) GetType() string
GetType consumer.localCache.type 本地缓存类型,默认default,可修改成具体的缓存插件名
func (*LocalCacheConfigImpl) SetDefault ¶
func (l *LocalCacheConfigImpl) SetDefault()
SetDefault 设置LocalCacheConfig配置的默认值
func (*LocalCacheConfigImpl) SetPersistAvailableInterval ¶
func (l *LocalCacheConfigImpl) SetPersistAvailableInterval(interval time.Duration)
SetPersistAvailableInterval
func (*LocalCacheConfigImpl) SetPersistDir ¶
func (l *LocalCacheConfigImpl) SetPersistDir(dir string)
SetPersistDir 设置本地缓存持久化路径
func (*LocalCacheConfigImpl) SetPersistMaxReadRetry ¶
func (l *LocalCacheConfigImpl) SetPersistMaxReadRetry(maxReadRetry int)
SetPersistMaxReadRetry
func (*LocalCacheConfigImpl) SetPersistMaxWriteRetry ¶
func (l *LocalCacheConfigImpl) SetPersistMaxWriteRetry(maxWriteRetry int)
SetPersistMaxWriteRetry
func (*LocalCacheConfigImpl) SetPersistRetryInterval ¶
func (l *LocalCacheConfigImpl) SetPersistRetryInterval(interval time.Duration)
SetPersistRetryInterval
func (*LocalCacheConfigImpl) SetPluginConfig ¶
func (l *LocalCacheConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig 输出插件具体配置
func (*LocalCacheConfigImpl) SetServiceExpireTime ¶
func (l *LocalCacheConfigImpl) SetServiceExpireTime(expireTime time.Duration)
SetServiceExpireTime 设置服务超时淘汰时间
func (*LocalCacheConfigImpl) SetServiceRefreshInterval ¶
func (l *LocalCacheConfigImpl) SetServiceRefreshInterval(interval time.Duration)
SetServiceRefreshInterval 设置服务定时刷新间隔
func (*LocalCacheConfigImpl) SetStartUseFileCache ¶
func (l *LocalCacheConfigImpl) SetStartUseFileCache(useCacheFile bool)
SetStartUseFileCache 设置是否可以直接使用缓存
func (*LocalCacheConfigImpl) SetType ¶
func (l *LocalCacheConfigImpl) SetType(typ string)
SetType 设置本地缓存类型
func (*LocalCacheConfigImpl) Verify ¶
func (l *LocalCacheConfigImpl) Verify() error
Verify 检验LocalCacheConfig配置
type NearbyConfig ¶
type NearbyConfig interface { BaseConfig // SetMatchLevel 设置匹配级别,consumer.serviceRouter.plugin.nearbyBasedRouter.matchLevel SetMatchLevel(level string) // GetMatchLevel 获取匹配级别,consumer.serviceRouter.plugin.nearbyBasedRouter.matchLevel GetMatchLevel() string // SetLowestMatchLevel . // Deprecated: 设置可以降级的最低匹配级别, 已废弃,请使用SetMaxMatchLevel SetLowestMatchLevel(level string) // GetLowestMatchLevel . // Deprecated: 获取可以降级的最低匹配级别,已废弃,请使用GetMaxMatchLevel GetLowestMatchLevel() string // SetMaxMatchLevel 设置可以降级的最低匹配级别,consumer.serviceRouter.plugin.nearbyBasedRouter.maxMatchLevel SetMaxMatchLevel(level string) // GetMaxMatchLevel 获取可以降级的最低匹配级别,consumer.serviceRouter.plugin.nearbyBasedRouter.maxMatchLevel GetMaxMatchLevel() string // SetStrictNearby 设置是否进行严格就近,consumer.serviceRouter.plugin.nearbyBasedRouter.strictNearby SetStrictNearby(s bool) // IsStrictNearby 获取是否进行严格就近,consumer.serviceRouter.plugin.nearbyBasedRouter.strictNearby IsStrictNearby() bool // IsEnableDegradeByUnhealthyPercent 是否开启根据不健康实例比例进行降级就近匹配, // consumer.serviceRouter.plugin.nearbyBasedRouter.enableDegradeByUnhealthyPercent IsEnableDegradeByUnhealthyPercent() bool // SetEnableDegradeByUnhealthyPercent 设置是否开启根据不健康实例比例进行降级就近匹配 // consumer.serviceRouter.plugin.nearbyBasedRouter.enableDegradeByUnhealthyPercent SetEnableDegradeByUnhealthyPercent(e bool) // GetUnhealthyPercentToDegrade 获取触发降级匹配的不健康实例比例, // consumer.serviceRouter.plugin.nearbyBasedRouter.unhealthyPercentToDegrade GetUnhealthyPercentToDegrade() int // SetUnhealthyPercentToDegrade 设置触发降级匹配的不健康实例比例,consumer.serviceRouter.plugin.nearbyBasedRouter.unhealthyPercentToDegrade SetUnhealthyPercentToDegrade(u int) }
NearbyConfig 就近路由配置
type PluginConfig ¶
type PluginConfig interface { // GetPluginConfig 获取plugin.<name>下的插件配置,将map[string]interface形式的配置marshal进value中 GetPluginConfig(pluginName string) BaseConfig // SetPluginConfig 设置插件配置,将value的内容unmarshal为map[string]interface{}形式 SetPluginConfig(plugName string, value BaseConfig) error }
PluginConfig 插件配置对象
type PluginConfigs ¶
type PluginConfigs map[string]interface{}
PluginConfigs 插件配置实现类
func (PluginConfigs) GetPluginConfig ¶
func (p PluginConfigs) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig 根据插件名获取配置
func (PluginConfigs) SetDefault ¶
func (p PluginConfigs) SetDefault(typ common.Type)
SetDefault 设置默认值
func (PluginConfigs) SetPluginConfig ¶
func (p PluginConfigs) SetPluginConfig(plugType common.Type, plugName string, value BaseConfig) error
SetPluginConfig 设置单独一个插件的值
type ProviderConfig ¶
type ProviderConfig interface { BaseConfig // GetRateLimit 获取限流配置 GetRateLimit() RateLimitConfig }
ProviderConfig 被调端配置对象
type ProviderConfigImpl ¶
type ProviderConfigImpl struct { // 限流配置 RateLimit *RateLimitConfigImpl `yaml:"rateLimit" json:"rateLimit"` }
ProviderConfigImpl 服务提供者配置
func (*ProviderConfigImpl) GetRateLimit ¶
func (p *ProviderConfigImpl) GetRateLimit() RateLimitConfig
GetRateLimit 是否启用限流能力
type RateLimitConfig ¶
type RateLimitConfig interface { BaseConfig PluginConfig // IsEnable 是否启用限流能力 IsEnable() bool // SetEnable 设置是否启用限流能力 SetEnable(bool) // GetMaxWindowSize 获取最大限流窗口数量 GetMaxWindowSize() int // SetMaxWindowSize 设置最大限流窗口数量 SetMaxWindowSize(maxSize int) // GetPurgeInterval 获取超时淘汰周期 GetPurgeInterval() time.Duration // SetPurgeInterval 设置超时淘汰周期 SetPurgeInterval(time.Duration) // GetRules GetRules GetRules() []RateLimitRule // SetRules SetRules SetRules([]RateLimitRule) }
RateLimitConfig 限流相关配置
type RateLimitConfigImpl ¶
type RateLimitConfigImpl struct { // 是否启动限流 Enable *bool `yaml:"enable" json:"enable"` // 各个限流插件的配置 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` // 最大限流窗口数量 MaxWindowSize int `yaml:"maxWindowSize" json:"maxWindowSize"` // 超时window检查周期 PurgeInterval time.Duration `yaml:"purgeInterval" json:"purgeInterval"` // 本地限流规则 Rules []RateLimitRule `yaml:"rules"` }
RateLimitConfigImpl 限流配置对象
func (*RateLimitConfigImpl) GetMaxWindowSize ¶
func (r *RateLimitConfigImpl) GetMaxWindowSize() int
GetMaxWindowSize .
func (*RateLimitConfigImpl) GetPluginConfig ¶
func (r *RateLimitConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig 获取插件配置
func (*RateLimitConfigImpl) GetPurgeInterval ¶
func (r *RateLimitConfigImpl) GetPurgeInterval() time.Duration
GetPurgeInterval .
func (*RateLimitConfigImpl) GetRules ¶ added in v1.0.1
func (r *RateLimitConfigImpl) GetRules() []RateLimitRule
GetRules 获取规则
func (*RateLimitConfigImpl) IsEnable ¶
func (r *RateLimitConfigImpl) IsEnable() bool
IsEnable 是否启用限流能力
func (*RateLimitConfigImpl) SetDefault ¶
func (r *RateLimitConfigImpl) SetDefault()
SetDefault 设置默认参数
func (*RateLimitConfigImpl) SetEnable ¶
func (r *RateLimitConfigImpl) SetEnable(value bool)
SetEnable 设置是否启用限流能力
func (*RateLimitConfigImpl) SetMaxWindowSize ¶
func (r *RateLimitConfigImpl) SetMaxWindowSize(maxSize int)
SetMaxWindowSize .
func (*RateLimitConfigImpl) SetPluginConfig ¶
func (r *RateLimitConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig 设置插件配置
func (*RateLimitConfigImpl) SetPurgeInterval ¶
func (r *RateLimitConfigImpl) SetPurgeInterval(v time.Duration)
SetPurgeInterval .
func (*RateLimitConfigImpl) SetRules ¶ added in v1.0.1
func (r *RateLimitConfigImpl) SetRules(rules []RateLimitRule)
SetRules 。设置规则
type RateLimitRule ¶ added in v1.0.1
type RateLimitRule struct { Namespace string `yaml:"namespace"` Service string `yaml:"service"` Labels map[string]Matcher `yaml:"labels"` MaxAmount int `yaml:"maxAmount"` ValidDuration time.Duration `yaml:"validDuration"` }
RateLimitRule 限流规则
type ServerClusterConfig ¶
type ServerClusterConfig interface { BaseConfig // GetNamespace 获取命名空间 GetNamespace() string // SetNamespace 设置命名空间 SetNamespace(string) // GetService 获取服务名 GetService() string // SetService 设置服务名 SetService(string) // GetRefreshInterval 系统服务的刷新间隔 GetRefreshInterval() time.Duration // SetRefreshInterval 设置系统服务的刷新间隔 SetRefreshInterval(time.Duration) }
ServerClusterConfig 单个系统服务集群
type ServerClusterConfigImpl ¶
type ServerClusterConfigImpl struct { Namespace string `yaml:"namespace" json:"namespace"` Service string `yaml:"service" json:"service"` RefreshInterval *time.Duration `yaml:"refreshInterval" json:"refreshInterval"` }
ServerClusterConfigImpl 单个服务集群配置
func NewServerClusterConfig ¶
func NewServerClusterConfig(svcKey model.ServiceKey) *ServerClusterConfigImpl
NewServerClusterConfig 通过服务信息创建服务集群配置
func (*ServerClusterConfigImpl) GetNamespace ¶
func (s *ServerClusterConfigImpl) GetNamespace() string
GetNamespace 获取命名空间
func (*ServerClusterConfigImpl) GetRefreshInterval ¶
func (s *ServerClusterConfigImpl) GetRefreshInterval() time.Duration
GetRefreshInterval 获取系统服务刷新间隔
func (*ServerClusterConfigImpl) GetService ¶
func (s *ServerClusterConfigImpl) GetService() string
GetService 获取服务名
func (*ServerClusterConfigImpl) SetDefault ¶
func (s *ServerClusterConfigImpl) SetDefault()
设置ServerClusterConfig默认配置
func (*ServerClusterConfigImpl) SetNamespace ¶
func (s *ServerClusterConfigImpl) SetNamespace(namespace string)
SetNamespace 设置命名空间
func (*ServerClusterConfigImpl) SetRefreshInterval ¶
func (s *ServerClusterConfigImpl) SetRefreshInterval(interval time.Duration)
SetRefreshInterval 获取系统服务刷新间隔
func (*ServerClusterConfigImpl) SetService ¶
func (s *ServerClusterConfigImpl) SetService(service string)
SetService 设置服务名
func (*ServerClusterConfigImpl) Verify ¶
func (s *ServerClusterConfigImpl) Verify() error
校验ServerClusterConfig配置
type ServerConnectorConfig ¶
type ServerConnectorConfig interface { BaseConfig PluginConfig // GetAddresses global.serverConnector.addresses // 远端server地址,格式为<host>:<port> GetAddresses() []string // SetAddresses 设置远端server地址,格式为<host>:<port> SetAddresses([]string) // GetProtocol global.serverConnector.protocol // 与server对接的协议 GetProtocol() string // SetProtocol 设置与server对接的协议 SetProtocol(string) // GetConnectTimeout global.serverConnector.connectTimeout // 与server的连接超时时间 GetConnectTimeout() time.Duration // SetConnectTimeout 设置与server的连接超时时间 SetConnectTimeout(time.Duration) // GetMessageTimeout global.registry.messageTimeout // 远程请求超时时间 GetMessageTimeout() time.Duration // SetMessageTimeout 设置远程请求超时时间 SetMessageTimeout(time.Duration) // GetRequestQueueSize global.serverConnector.clientRequestQueueSize // 新请求的队列BUFFER容量 GetRequestQueueSize() int32 // SetRequestQueueSize 设置新请求的队列BUFFER容量 SetRequestQueueSize(int32) // GetServerSwitchInterval global.serverConnector.serverSwitchInterval // server的切换时延 GetServerSwitchInterval() time.Duration // SetServerSwitchInterval 设置server的切换时延 SetServerSwitchInterval(time.Duration) // GetReconnectInterval 获取一次连接失败后,到下一次重连的间隔时间 GetReconnectInterval() time.Duration // SetReconnectInterval 设置重试连接的间隔时间 SetReconnectInterval(time.Duration) // GetConnectionIdleTimeout global.serverConnector.connectionIdleTimeout // 连接会被释放的空闲的时长 GetConnectionIdleTimeout() time.Duration // SetConnectionIdleTimeout 设置连接会被释放的空闲的时长 SetConnectionIdleTimeout(time.Duration) }
ServerConnectorConfig 与名字服务服务端的连接配置
type ServerConnectorConfigImpl ¶
type ServerConnectorConfigImpl struct { Addresses []string `yaml:"addresses" json:"addresses"` Protocol string `yaml:"protocol" json:"protocol"` ConnectTimeout *time.Duration `yaml:"connectTimeout" json:"connectTimeout"` // 远程请求超时时间 MessageTimeout *time.Duration `yaml:"messageTimeout" json:"messageTimeout"` ConnectionIdleTimeout *time.Duration `yaml:"connectionIdleTimeout" json:"connectionIdleTimeout"` RequestQueueSize *int32 `yaml:"requestQueueSize" json:"requestQueueSize"` ServerSwitchInterval *time.Duration `yaml:"serverSwitchInterval" json:"serverSwitchInterval"` ReconnectInterval *time.Duration `yaml:"reconnectInterval" json:"reconnectInterval"` Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
对接注册中心相关配置
func (*ServerConnectorConfigImpl) GetAddresses ¶
func (s *ServerConnectorConfigImpl) GetAddresses() []string
GetAddresses global.serverConnector.addresses 远端cl5 server地址,格式为<host>:<port>
func (*ServerConnectorConfigImpl) GetConnectTimeout ¶
func (s *ServerConnectorConfigImpl) GetConnectTimeout() time.Duration
GetConnectTimeout global.serverConnector.connectTimeout 与server的连接超时时间
func (*ServerConnectorConfigImpl) GetConnectionIdleTimeout ¶
func (s *ServerConnectorConfigImpl) GetConnectionIdleTimeout() time.Duration
GetConnectionExpireInterval global.serverConnector.connectionIdleTimeout 连接空闲后超时时间
func (*ServerConnectorConfigImpl) GetMessageTimeout ¶
func (s *ServerConnectorConfigImpl) GetMessageTimeout() time.Duration
GetMessageTimeout global.serverConnector.messageTimeout 远程请求超时时间
func (*ServerConnectorConfigImpl) GetPluginConfig ¶
func (s *ServerConnectorConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig global.serverConnector.plugin
func (*ServerConnectorConfigImpl) GetProtocol ¶
func (s *ServerConnectorConfigImpl) GetProtocol() string
GetProtocol global.serverConnector.protocol 与cl5 server对接的协议
func (*ServerConnectorConfigImpl) GetReconnectInterval ¶
func (s *ServerConnectorConfigImpl) GetReconnectInterval() time.Duration
GetReconnectInterval 一次连接失败后,到下一次连接之间的最小间隔时间
func (*ServerConnectorConfigImpl) GetRequestQueueSize ¶
func (s *ServerConnectorConfigImpl) GetRequestQueueSize() int32
GetRequestQueueSize global.serverConnector.requestQueueSize 新请求的队列BUFFER容量
func (*ServerConnectorConfigImpl) GetServerSwitchInterval ¶
func (s *ServerConnectorConfigImpl) GetServerSwitchInterval() time.Duration
GetServerSwitchInterval global.serverConnector.serverSwitchInterval server的切换时延
func (*ServerConnectorConfigImpl) SetAddresses ¶
func (s *ServerConnectorConfigImpl) SetAddresses(addresses []string)
SetAddresses 设置远端cl5 server地址,格式为<host>:<port>
func (*ServerConnectorConfigImpl) SetConnectTimeout ¶
func (s *ServerConnectorConfigImpl) SetConnectTimeout(timeout time.Duration)
SetConnectTimeout 设置与server的连接超时时间
func (*ServerConnectorConfigImpl) SetConnectionIdleTimeout ¶
func (s *ServerConnectorConfigImpl) SetConnectionIdleTimeout(timeout time.Duration)
SetConnectionIdleTimeout 设置连接空闲后超时时间
func (*ServerConnectorConfigImpl) SetDefault ¶
func (s *ServerConnectorConfigImpl) SetDefault()
SetDefault 设置ServerConnector配置的默认值
func (*ServerConnectorConfigImpl) SetMessageTimeout ¶
func (s *ServerConnectorConfigImpl) SetMessageTimeout(timeout time.Duration)
SetMessageTimeout 设置远程请求超时时间
func (*ServerConnectorConfigImpl) SetPluginConfig ¶
func (s *ServerConnectorConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig 输出插件具体配置
func (*ServerConnectorConfigImpl) SetProtocol ¶
func (s *ServerConnectorConfigImpl) SetProtocol(protocol string)
SetProtocol 设置与cl5 server对接的协议
func (*ServerConnectorConfigImpl) SetReconnectInterval ¶
func (s *ServerConnectorConfigImpl) SetReconnectInterval(interval time.Duration)
SetReconnectInterval 一次连接失败后,到下一次连接之间的最小间隔时间
func (*ServerConnectorConfigImpl) SetRequestQueueSize ¶
func (s *ServerConnectorConfigImpl) SetRequestQueueSize(queueSize int32)
SetRequestQueueSize 设置新请求的队列BUFFER容量
func (*ServerConnectorConfigImpl) SetServerSwitchInterval ¶
func (s *ServerConnectorConfigImpl) SetServerSwitchInterval(interval time.Duration)
SetServerSwitchInterval server的切换时延
func (*ServerConnectorConfigImpl) Verify ¶
func (s *ServerConnectorConfigImpl) Verify() error
Verify 检验ServerConnector配置
type ServerServices ¶
type ServerServices map[ClusterType]ClusterService
ServerServices 系统服务列表数据
func (ServerServices) GetClusterService ¶
func (s ServerServices) GetClusterService(clsType ClusterType) *ClusterService
GetClusterService 获取集群服务
type ServiceRouterConfig ¶
type ServiceRouterConfig interface { BaseConfig PluginConfig // GetChain consumer.serviceRouter.chain // 路由责任链配置 GetChain() []string // SetChain 设置路由责任链配置 SetChain([]string) // GetPercentOfMinInstances 获取PercentOfMinInstances参数 GetPercentOfMinInstances() float64 // SetPercentOfMinInstances 设置PercentOfMinInstances参数 SetPercentOfMinInstances(float64) // IsEnableRecoverAll 是否启用全死全活机制 IsEnableRecoverAll() bool // SetEnableRecoverAll 设置启用全死全活机制 SetEnableRecoverAll(bool) // GetNearbyConfig 获取就近路由配置 GetNearbyConfig() NearbyConfig }
ServiceRouterConfig 服务路由相关配置项
type ServiceRouterConfigImpl ¶
type ServiceRouterConfigImpl struct { // 服务路由责任链 Chain []string `yaml:"chain" json:"chain"` // 插件相关配置 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` // 进行过滤时的最大过滤比例 PercentOfMinInstances *float64 `yaml:"percentOfMinInstances" json:"percentOfMinInstances"` // 是否启用全死全活机制 EnableRecoverAll *bool `yaml:"enableRecoverAll" json:"enableRecoverAll"` }
ServiceRouterConfigImpl 服务路由配置
func (*ServiceRouterConfigImpl) GetChain ¶
func (s *ServiceRouterConfigImpl) GetChain() []string
GetChain consumer.serviceRouter.filterChain 路由责任链配置
func (*ServiceRouterConfigImpl) GetNearbyConfig ¶
func (s *ServiceRouterConfigImpl) GetNearbyConfig() NearbyConfig
GetNearbyConfig 获取就近路由配置
func (*ServiceRouterConfigImpl) GetPercentOfMinInstances ¶
func (s *ServiceRouterConfigImpl) GetPercentOfMinInstances() float64
GetPercentOfMinInstances 获取PercentOfMinInstances参数
func (*ServiceRouterConfigImpl) GetPluginConfig ¶
func (s *ServiceRouterConfigImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig consumer.serviceRouter.plugin
func (*ServiceRouterConfigImpl) IsEnableRecoverAll ¶
func (s *ServiceRouterConfigImpl) IsEnableRecoverAll() bool
IsEnableRecoverAll 是否启用全死全活机制
func (*ServiceRouterConfigImpl) SetChain ¶
func (s *ServiceRouterConfigImpl) SetChain(chain []string)
SetChain 设置路由责任链配置
func (*ServiceRouterConfigImpl) SetDefault ¶
func (s *ServiceRouterConfigImpl) SetDefault()
SetDefault 设置ServiceRouterConfig配置的默认值
func (*ServiceRouterConfigImpl) SetEnableRecoverAll ¶
func (s *ServiceRouterConfigImpl) SetEnableRecoverAll(recoverAll bool)
SetEnableRecoverAll 设置启用全死全活机制
func (*ServiceRouterConfigImpl) SetPercentOfMinInstances ¶
func (s *ServiceRouterConfigImpl) SetPercentOfMinInstances(percent float64)
SetPercentOfMinInstances 设置PercentOfMinInstances参数
func (*ServiceRouterConfigImpl) SetPluginConfig ¶
func (s *ServiceRouterConfigImpl) SetPluginConfig(pluginName string, value BaseConfig) error
SetPluginConfig 输出插件具体配置
func (*ServiceRouterConfigImpl) Verify ¶
func (s *ServiceRouterConfigImpl) Verify() error
Verify 检验ServiceRouterConfig配置
type ServiceSpecific ¶
type ServiceSpecific struct { Namespace string `yaml:"namespace" json:"namespace"` Service string `yaml:"service" json:"service"` ServiceRouter *ServiceRouterConfigImpl `yaml:"serviceRouter" json:"serviceRouter"` CircuitBreaker *CircuitBreakerConfigImpl `yaml:"circuitBreaker" json:"circuitBreaker"` }
func (*ServiceSpecific) GetServiceCircuitBreaker ¶
func (s *ServiceSpecific) GetServiceCircuitBreaker() CircuitBreakerConfig
func (*ServiceSpecific) GetServiceRouter ¶
func (s *ServiceSpecific) GetServiceRouter() ServiceRouterConfig
func (*ServiceSpecific) Init ¶
func (s *ServiceSpecific) Init()
func (*ServiceSpecific) SetDefault ¶
func (s *ServiceSpecific) SetDefault()
func (*ServiceSpecific) Verify ¶
func (s *ServiceSpecific) Verify() error
type ServiceSpecificConfig ¶
type ServiceSpecificConfig interface { BaseConfig GetServiceCircuitBreaker() CircuitBreakerConfig GetServiceRouter() ServiceRouterConfig }
ServiceSpecificConfig 配置
type ServicesSpecificImpl ¶
type ServicesSpecificImpl struct {
Services []*ServiceSpecific
}
type StatReporterConfig ¶
type StatReporterConfig interface { BaseConfig PluginConfig // IsEnable 是否启用上报 IsEnable() bool // SetEnable 设置是否启用上报 SetEnable(bool) // GetChain 统计上报器插件链 GetChain() []string // SetChain 设置统计上报器插件链 SetChain([]string) }
StatReporterConfig 统计上报配置
type StatReporterConfigImpl ¶
type StatReporterConfigImpl struct { // 是否启动上报 Enable *bool `yaml:"enable" json:"enable"` // 上报插件链 Chain []string `yaml:"chain" json:"chain"` // 插件相关配置 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
StatReporterConfigImpl global.statReporter
func (*StatReporterConfigImpl) GetChain ¶
func (s *StatReporterConfigImpl) GetChain() []string
GetChain 插件链条
func (*StatReporterConfigImpl) GetPluginConfig ¶
func (s *StatReporterConfigImpl) GetPluginConfig(name string) BaseConfig
GetPluginConfig 获取一个插件的配置
func (*StatReporterConfigImpl) IsEnable ¶
func (s *StatReporterConfigImpl) IsEnable() bool
IsEnable 是否启用上报
func (*StatReporterConfigImpl) SetChain ¶
func (s *StatReporterConfigImpl) SetChain(chain []string)
SetChain 设置插件链条
func (*StatReporterConfigImpl) SetDefault ¶
func (s *StatReporterConfigImpl) SetDefault()
SetDefault 设置statReporter默认值
func (*StatReporterConfigImpl) SetEnable ¶
func (s *StatReporterConfigImpl) SetEnable(enable bool)
SetEnable 设置是否启用上报
func (*StatReporterConfigImpl) SetPluginConfig ¶
func (s *StatReporterConfigImpl) SetPluginConfig(plugName string, value BaseConfig) error
SetPluginConfig 输出插件具体配置
func (*StatReporterConfigImpl) Verify ¶
func (s *StatReporterConfigImpl) Verify() error
Verify 检测statReporter配置
type SubscribeConfig ¶
type SubscribeConfig interface { BaseConfig PluginConfig // GetType 获取插件 GetType() string // SetType 设置插件 SetType(string) }
SubscribeConfig .订阅配置
type SubscribeImpl ¶
type SubscribeImpl struct { // 上报插件链 Type string `yaml:"type" json:"type"` // 插件相关配置 Plugin PluginConfigs `yaml:"plugin" json:"plugin"` }
func (*SubscribeImpl) GetPluginConfig ¶
func (s *SubscribeImpl) GetPluginConfig(pluginName string) BaseConfig
GetPluginConfig
func (*SubscribeImpl) Init ¶
func (s *SubscribeImpl) Init()
func (*SubscribeImpl) SetDefault ¶
func (s *SubscribeImpl) SetDefault()
func (*SubscribeImpl) SetPluginConfig ¶
func (s *SubscribeImpl) SetPluginConfig(plugName string, value BaseConfig) error
SetPluginConfig
type SystemConfig ¶
type SystemConfig interface { BaseConfig // GetMode global.systemConfig.mode // SDK运行模式,agent还是noagent GetMode() model.RunMode // SetMode 设置SDK运行模式 SetMode(model.RunMode) // GetDiscoverCluster global.systemConfig.discoverCluster // 服务发现集群 GetDiscoverCluster() ServerClusterConfig // GetHealthCheckCluster global.systemConfig.healthCheckCluster // 健康检查集群 GetHealthCheckCluster() ServerClusterConfig // GetMonitorCluster global.systemConfig.monitorCluster // 监控上报集群 GetMonitorCluster() ServerClusterConfig // GetVariable global.systemConfig.variables // 获取一个路由环境变量 GetVariable(key string) (string, bool) // SetVariable global.systemConfig.variables // 设置一个路由环境变量 SetVariable(key, value string) // UnsetVariable 取消一个路由环境变量 UnsetVariable(key string) }
SystemConfig 系统配置信息
type SystemConfigImpl ¶
type SystemConfigImpl struct { // SDK运行模式 Mode model.RunMode `yaml:"mode" json:"mode"` // 服务发现集群 DiscoverCluster *ServerClusterConfigImpl `yaml:"discoverCluster" json:"discoverCluster"` // 健康检查集群 HealthCheckCluster *ServerClusterConfigImpl `yaml:"healthCheckCluster" json:"healthCheckCluster"` // 监控上报集群 MonitorCluster *ServerClusterConfigImpl `yaml:"monitorCluster" json:"monitorCluster"` // 传入的路由规则variables Variables map[string]string `yaml:"variables" json:"variables"` }
SystemConfigImpl 系统配置
func (*SystemConfigImpl) GetDiscoverCluster ¶
func (s *SystemConfigImpl) GetDiscoverCluster() ServerClusterConfig
GetDiscoverCluster 服务发现集群
func (*SystemConfigImpl) GetHealthCheckCluster ¶
func (s *SystemConfigImpl) GetHealthCheckCluster() ServerClusterConfig
GetHealthCheckCluster 健康检查集群
func (*SystemConfigImpl) GetMode ¶
func (s *SystemConfigImpl) GetMode() model.RunMode
GetMode SDK运行模式,agent还是noagent
func (*SystemConfigImpl) GetMonitorCluster ¶
func (s *SystemConfigImpl) GetMonitorCluster() ServerClusterConfig
GetMonitorCluster 监控上报集群
func (*SystemConfigImpl) GetVariable ¶
func (s *SystemConfigImpl) GetVariable(key string) (string, bool)
GetVariable 获取一个路由variable
func (*SystemConfigImpl) SetMode ¶
func (s *SystemConfigImpl) SetMode(mode model.RunMode)
SetMode 设置SDK运行模式
func (*SystemConfigImpl) SetVariable ¶
func (s *SystemConfigImpl) SetVariable(key, value string)
SetVariable 设置一个路由variable
func (*SystemConfigImpl) UnsetVariable ¶
func (s *SystemConfigImpl) UnsetVariable(key string)
UnsetVariable 取消一个路由variable