Documentation ¶
Index ¶
- Constants
- Variables
- type Abort
- type BackoffStrategy
- type ChainStruct
- type CircuitBreakPropertyStruct
- type CircuitBreakerSpec
- type CircuitWrapper
- type ClientStruct
- type ConfigAPIVersionStruct
- type ConfigStruct
- type ContractDiscoveryStruct
- type ControlPanel
- type CredentialStruct
- type CseStruct
- type DarkLaunchRule
- type DataCenterInfo
- type Delay
- type FallbackPolicyPropertyStruct
- type FallbackPolicySpec
- type FallbackPolicyWrapper
- type FallbackPropertyStruct
- type FallbackSpec
- type FallbackWrapper
- type Fault
- type FaultProtocolStruct
- type FlowControl
- type GlobalCfg
- type HandlerStruct
- type HystrixConfig
- type HystrixConfigWrapper
- type IsolationPropertyStruct
- type IsolationSpec
- type IsolationWrapper
- type LBWrapper
- type LoadBalancing
- type LoadBalancingConfig
- type LoadBalancingSpec
- type Match
- type MetricsStruct
- type MicServiceStruct
- type MicroserviceCfg
- type MonitorAPIVersionStruct
- type MonitorClientStruct
- type MonitorStruct
- type PassLagerCfg
- type Protocol
- type QPS
- type QPSProps
- type ReferencesStruct
- type RegistratorStruct
- type RegistryAPIVersionStruct
- type RegistryStruct
- type RouteRule
- type RouteTag
- type Router
- type RouterConfig
- type RuleItem
- type ServiceDiscoveryStruct
- type ServiceStruct
- type SessionStickinessRule
- type Timeout
- type TracingStruct
Constants ¶
const ( ConsumerType = "Consumer" ProviderType = "Provider" )
constant for consumer and provider
Variables ¶
var ( //default config fo hystric. DefaultIsolation = IsolationPropertyStruct{ Timeout: Timeout{true}, TimeoutInMilliseconds: 1000, MaxConcurrentRequests: 4000, } DefaultCircuit = CircuitBreakPropertyStruct{ Enabled: true, ForceOpen: false, ForceClose: false, SleepWindowInMilliseconds: 5000, RequestVolumeThreshold: 20, ErrorThresholdPercentage: 50, } DefaultFallback = FallbackPropertyStruct{ Enabled: true, MaxConcurrentRequests: 4000, } )
variables of isolation, circuit, fallback
Functions ¶
This section is empty.
Types ¶
type BackoffStrategy ¶
type BackoffStrategy struct { Kind string `yaml:"kind"` MinMs int `yaml:"minMs"` MaxMs int `yaml:"maxMs"` }
BackoffStrategy back off strategy
type ChainStruct ¶
type ChainStruct struct { Consumer map[string]string `yaml:"Consumer"` Provider map[string]string `yaml:"Provider"` }
ChainStruct 调用链信息
type CircuitBreakPropertyStruct ¶
type CircuitBreakPropertyStruct struct { Enabled bool `yaml:"enabled"` ForceOpen bool `yaml:"forceOpen"` ForceClose bool `yaml:"forceClosed"` SleepWindowInMilliseconds int `yaml:"sleepWindowInMilliseconds"` RequestVolumeThreshold int `yaml:"requestVolumeThreshold"` ErrorThresholdPercentage int `yaml:"errorThresholdPercentage"` }
CircuitBreakPropertyStruct circuitBreaker 属性集合
type CircuitBreakerSpec ¶
type CircuitBreakerSpec struct { Enabled bool `yaml:"enabled"` ForceOpen bool `yaml:"forceOpen"` ForceClose bool `yaml:"forceClosed"` SleepWindowInMilliseconds int `yaml:"sleepWindowInMilliseconds"` RequestVolumeThreshold int `yaml:"requestVolumeThreshold"` ErrorThresholdPercentage int `yaml:"errorThresholdPercentage"` AnyService map[string]CircuitBreakPropertyStruct `yaml:",inline"` }
CircuitBreakerSpec circuit breaker specifications
type CircuitWrapper ¶
type CircuitWrapper struct { Consumer *CircuitBreakerSpec `yaml:"Consumer"` Provider *CircuitBreakerSpec `yaml:"Provider"` }
CircuitWrapper circuit wrapper structure
type ClientStruct ¶
type ClientStruct struct { Type string `yaml:"type"` ServerURI string `yaml:"serverUri"` TenantName string `yaml:"tenantName"` RefreshMode int `yaml:"refreshMode"` RefreshInterval int `yaml:"refreshInterval"` RefreshPort string `yaml:"refreshPort"` Autodiscovery bool `yaml:"autodiscovery"` APIVersion ConfigAPIVersionStruct `yaml:"api"` ApolloServiceName string `yaml:"serviceName"` ApolloEnv string `yaml:"env"` ApolloNameSpace string `yaml:"namespace"` ApolloToken string `yaml:"token"` ClusterName string `yaml:"cluster"` Enabled bool `yaml:"enabled"` }
ClientStruct client structure
type ConfigAPIVersionStruct ¶
type ConfigAPIVersionStruct struct {
Version string `yaml:"version"`
}
ConfigAPIVersionStruct is the structure for configuration API version
type ConfigStruct ¶
type ConfigStruct struct {
Client ClientStruct `yaml:"client"`
}
ConfigStruct configuration structure
type ContractDiscoveryStruct ¶
type ContractDiscoveryStruct struct { Disable bool `yaml:"disabled"` Type string `yaml:"type"` Address string `yaml:"address"` RefreshInterval string `yaml:"refreshInterval"` Tenant string `yaml:"tenant"` APIVersion RegistryAPIVersionStruct `yaml:"api"` }
ContractDiscoveryStruct contract discovery config struct
type ControlPanel ¶ added in v0.7.1
type ControlPanel struct { Infra string `yaml:"infra"` Settings map[string]string `yaml:"settings"` }
ControlPanel define control panel config
type CredentialStruct ¶
type CredentialStruct struct { AccessKey string `yaml:"accessKey"` SecretKey string `yaml:"secretKey"` AkskCustomCipher string `yaml:"akskCustomCipher"` Project string `yaml:"project"` }
CredentialStruct aksk信息
type CseStruct ¶
type CseStruct struct { Config ConfigStruct `yaml:"config"` Service ServiceStruct `yaml:"service"` Protocols map[string]Protocol `yaml:"protocols"` Handler HandlerStruct `yaml:"handler"` References map[string]ReferencesStruct `yaml:"references"` FlowControl FlowControl `yaml:"flowcontrol"` Monitor MonitorStruct `yaml:"monitor"` Metrics MetricsStruct `yaml:"metrics"` Credentials CredentialStruct `yaml:"credentials"` }
CseStruct 设置注册中心SC的地址,要开哪些传输协议, 调用链信息等
type DarkLaunchRule ¶
type DarkLaunchRule struct { Type string `json:"policyType"` // RULE/RATE Items []*RuleItem `json:"ruleItems"` }
DarkLaunchRule dark launch rule
type DataCenterInfo ¶
type DataCenterInfo struct { Name string `yaml:"name"` Region string `yaml:"region"` AvailableZone string `yaml:"availableZone"` }
DataCenterInfo gives data center information
type FallbackPolicyPropertyStruct ¶
type FallbackPolicyPropertyStruct struct {
Policy string `yaml:"policy"`
}
FallbackPolicyPropertyStruct fallback policy property structure
type FallbackPolicySpec ¶
type FallbackPolicySpec struct { Policy string `yaml:"policy"` AnyService map[string]FallbackPolicyPropertyStruct `yaml:",inline"` }
FallbackPolicySpec fallback policy specifications
type FallbackPolicyWrapper ¶
type FallbackPolicyWrapper struct { Consumer *FallbackPolicySpec `yaml:"Consumer"` Provider *FallbackPolicySpec `yaml:"Provider"` }
FallbackPolicyWrapper fallback policy wrapper
type FallbackPropertyStruct ¶
type FallbackPropertyStruct struct { Enabled bool `yaml:"enabled"` Force bool `yaml:"force"` MaxConcurrentRequests int `yaml:"maxConcurrentRequests"` }
FallbackPropertyStruct fallback property structure
type FallbackSpec ¶
type FallbackSpec struct { Enabled bool `yaml:"enabled"` Force bool `yaml:"force"` MaxConcurrentRequests int `yaml:"maxConcurrentRequests"` AnyService map[string]FallbackPropertyStruct `yaml:",inline"` }
FallbackSpec fallback specifications
type FallbackWrapper ¶
type FallbackWrapper struct { Consumer *FallbackSpec `yaml:"Consumer"` Provider *FallbackSpec `yaml:"Provider"` }
FallbackWrapper fallback wrapper structure
type FaultProtocolStruct ¶
FaultProtocolStruct fault protocol struct
type FlowControl ¶ added in v0.7.1
FlowControl used to define rate limiting
type GlobalCfg ¶
type GlobalCfg struct { AppID string `yaml:"APPLICATION_ID"` Cse CseStruct `yaml:"cse"` Panel ControlPanel `yaml:"control"` Ssl map[string]string `yaml:"ssl"` Tracing TracingStruct `yaml:"tracing"` DataCenter *DataCenterInfo `yaml:"region"` }
GlobalCfg chassis.yaml 配置项
type HandlerStruct ¶
type HandlerStruct struct {
Chain ChainStruct `yaml:"chain"`
}
HandlerStruct 调用链信息
type HystrixConfig ¶
type HystrixConfig struct { IsolationProperties *IsolationWrapper `yaml:"isolation"` CircuitBreakerProperties *CircuitWrapper `yaml:"circuitBreaker"` FallbackProperties *FallbackWrapper `yaml:"fallback"` FallbackPolicyProperties *FallbackPolicyWrapper `yaml:"fallbackpolicy"` }
HystrixConfig is hystrix configuration structure
type HystrixConfigWrapper ¶
type HystrixConfigWrapper struct {
HystrixConfig *HystrixConfig `yaml:"cse"`
}
HystrixConfigWrapper hystrix configuration wrapper structure
func (*HystrixConfigWrapper) String ¶
func (hc *HystrixConfigWrapper) String() ([]byte, error)
String returns marshalling data of hystrix config wrapper
type IsolationPropertyStruct ¶
type IsolationPropertyStruct struct { Timeout Timeout `yaml:"timeout"` TimeoutInMilliseconds int `yaml:"timeoutInMilliseconds"` MaxConcurrentRequests int `yaml:"maxConcurrentRequests"` }
IsolationPropertyStruct isolation 属性集合
type IsolationSpec ¶
type IsolationSpec struct { TimeoutEnable Timeout `yaml:"timeout"` TimeoutInMilliseconds int `yaml:"timeoutInMilliseconds"` MaxConcurrentRequests int `yaml:"maxConcurrentRequests"` AnyService map[string]IsolationSpec `yaml:",inline"` }
IsolationSpec isolation speciafications
type IsolationWrapper ¶
type IsolationWrapper struct { Consumer *IsolationSpec `yaml:"Consumer"` Provider *IsolationSpec `yaml:"Provider"` }
IsolationWrapper isolation wrapper structure
type LBWrapper ¶
type LBWrapper struct {
Prefix *LoadBalancingConfig `yaml:"cse"`
}
LBWrapper loadbalancing structure
type LoadBalancing ¶
type LoadBalancing struct { Strategy map[string]string `yaml:"strategy"` RetryEnabled bool `yaml:"retryEnabled"` RetryOnNext int `yaml:"retryOnNext"` RetryOnSame int `yaml:"retryOnSame"` Filters string `yaml:"serverListFilters"` Backoff BackoffStrategy `yaml:"backoff"` SessionStickinessRule SessionStickinessRule `yaml:"SessionStickinessRule"` AnyService map[string]LoadBalancingSpec `yaml:",inline"` }
LoadBalancing loadbalancing structure
type LoadBalancingConfig ¶
type LoadBalancingConfig struct {
LBConfig *LoadBalancing `yaml:"loadbalance"`
}
LoadBalancingConfig loadbalancing structure
type LoadBalancingSpec ¶
type LoadBalancingSpec struct { Strategy map[string]string `yaml:"strategy"` SessionStickinessRule SessionStickinessRule `yaml:"SessionStickinessRule"` RetryEnabled bool `yaml:"retryEnabled"` RetryOnNext int `yaml:"retryOnNext"` RetryOnSame int `yaml:"retryOnSame"` Backoff BackoffStrategy `yaml:"backoff"` }
LoadBalancingSpec loadbalancing structure
type Match ¶
type Match struct { Refer string `yaml:"refer"` Source string `yaml:"source"` SourceTags map[string]string `yaml:"sourceTags"` HTTPHeaders map[string]map[string]string `yaml:"httpHeaders"` Headers map[string]map[string]string `yaml:"headers"` }
Match is checking source, source tags, and http headers
type MetricsStruct ¶
type MetricsStruct struct { APIPath string `yaml:"apiPath"` FlushInterval string `yaml:"flushInterval"` Enable bool `yaml:"enable"` EnableGoRuntimeMetrics bool `yaml:"enableGoRuntimeMetrics"` }
MetricsStruct metrics struct
type MicServiceStruct ¶
type MicServiceStruct struct { Name string `yaml:"name"` Hostname string `yaml:"hostname"` Version string `yaml:"version"` Environment string `yaml:"environment"` Level string `yaml:"level"` Properties map[string]string `yaml:"properties"` InstanceProperties map[string]string `yaml:"instance_properties"` }
MicServiceStruct 设置微服务的私有属性
type MicroserviceCfg ¶
type MicroserviceCfg struct { AppID string `yaml:"APPLICATION_ID"` Provider string `yaml:"Provider"` ServiceDescription MicServiceStruct `yaml:"service_description"` }
MicroserviceCfg microservice.yaml 配置项
type MonitorAPIVersionStruct ¶
type MonitorAPIVersionStruct struct {
Version string `yaml:"version"`
}
MonitorAPIVersionStruct monitor API version struct
type MonitorClientStruct ¶
type MonitorClientStruct struct { ServerURI string `yaml:"serverUri"` Enable bool `yaml:"enable"` UserName string `yaml:"userName"` DomainName string `yaml:"domainName"` APIVersion MonitorAPIVersionStruct `yaml:"api"` }
MonitorClientStruct monitor client struct
type MonitorStruct ¶
type MonitorStruct struct {
Client MonitorClientStruct `yaml:"client"`
}
MonitorStruct is the struct for monitoring parameters
type PassLagerCfg ¶
type PassLagerCfg struct { Writers string `yaml:"writers"` LoggerLevel string `yaml:"logger_level"` LoggerFile string `yaml:"logger_file"` LogFormatText bool `yaml:"log_format_text"` RollingPolicy string `yaml:"rollingPolicy"` LogRotateDate int `yaml:"log_rotate_date"` LogRotateSize int `yaml:"log_rotate_size"` LogBackupCount int `yaml:"log_backup_count"` }
PassLagerCfg is the struct for lager information(passlager.yaml)
type Protocol ¶
type Protocol struct { Listen string `yaml:"listenAddress"` Advertise string `yaml:"advertiseAddress"` WorkerNumber int `yaml:"workerNumber"` Transport string `yaml:"transport"` Failure string `yaml:"failure"` }
Protocol protocol structure
type QPS ¶ added in v0.7.1
type QPS struct {
QPS QPSProps `yaml:"qps"`
}
QPS is the struct to define QPS
type QPSProps ¶ added in v0.7.1
type QPSProps struct { Enabled bool `yaml:"enabled"` Global map[string]int `yaml:"global"` Limit map[string]string `yaml:"limit"` }
QPSProps define rate limiting settings
type ReferencesStruct ¶
type ReferencesStruct struct { Version string `yaml:"version"` Transport string `yaml:"transport"` }
ReferencesStruct references structure
type RegistratorStruct ¶
type RegistratorStruct struct { Disable bool `yaml:"disabled"` Type string `yaml:"type"` Scope string `yaml:"scope"` Address string `yaml:"address"` RefreshInterval string `yaml:"refreshInterval"` Tenant string `yaml:"tenant"` AutoRegister string `yaml:"register"` APIVersion RegistryAPIVersionStruct `yaml:"api"` }
RegistratorStruct service registry config struct
type RegistryAPIVersionStruct ¶
type RegistryAPIVersionStruct struct {
Version string `yaml:"version"`
}
RegistryAPIVersionStruct registry api version structure
type RegistryStruct ¶
type RegistryStruct struct { // NOTE: this part of struct would be deperacated later // please use registrator instead Disable bool `yaml:"disabled"` Type string `yaml:"type"` Scope string `yaml:"scope"` AutoDiscovery bool `yaml:"autodiscovery"` AutoIPIndex bool `yaml:"autoIPIndex"` Address string `yaml:"address"` RefreshInterval string `yaml:"refreshInterval"` Watch bool `yaml:"watch"` Tenant string `yaml:"tenant"` AutoRegister string `yaml:"register"` APIVersion RegistryAPIVersionStruct `yaml:"api"` // Use Registrator ServiceDiscovery and ContractDiscovery // to define information about service registry Registrator RegistratorStruct `yaml:"registrator"` ServiceDiscovery ServiceDiscoveryStruct `yaml:"serviceDiscovery"` ContractDiscovery ContractDiscoveryStruct `yaml:"contractDiscovery"` HealthCheck bool `yaml:"healthCheck"` CacheIndex bool `yaml:"cacheIndex"` }
RegistryStruct SC information
type RouteRule ¶
type RouteRule struct { Precedence int `yaml:"precedence"` Routes []*RouteTag `yaml:"route"` Match Match `yaml:"match"` }
RouteRule is having route rule parameters
type RouteTag ¶
type RouteTag struct { Tags map[string]string `yaml:"tags"` Weight int `yaml:"weight"` Label string }
RouteTag gives route tag information
type RouterConfig ¶
type RouterConfig struct { Router Router `yaml:"router"` Destinations map[string][]*RouteRule `yaml:"routeRule"` SourceTemplates map[string]*Match `yaml:"sourceTemplate"` }
RouterConfig is the struct having info about route rule destinations, source templates
type RuleItem ¶
type RuleItem struct { GroupName string `json:"groupName"` GroupCondition string `json:"groupCondition"` // version=0.0.1 PolicyCondition string `json:"policyCondition"` // 80/test!=2 }
RuleItem rule item
type ServiceDiscoveryStruct ¶
type ServiceDiscoveryStruct struct { Disable bool `yaml:"disabled"` Type string `yaml:"type"` AutoDiscovery bool `yaml:"autodiscovery"` AutoIPIndex bool `yaml:"autoIPIndex"` Address string `yaml:"address"` RefreshInterval string `yaml:"refreshInterval"` Watch bool `yaml:"watch"` Tenant string `yaml:"tenant"` ConfigPath string `yaml:"configPath"` APIVersion RegistryAPIVersionStruct `yaml:"api"` HealthCheck bool `yaml:"healthCheck"` }
ServiceDiscoveryStruct service discovery config struct
type ServiceStruct ¶
type ServiceStruct struct {
Registry RegistryStruct `yaml:"registry"`
}
ServiceStruct SC information
type SessionStickinessRule ¶
type SessionStickinessRule struct { SessionTimeoutInSeconds int `yaml:"sessionTimeoutInSeconds"` SuccessiveFailedTimes int `yaml:"successiveFailedTimes"` }
SessionStickinessRule loadbalancing structure
type TracingStruct ¶
type TracingStruct struct { SamplingRate float64 `yaml:"samplingRate"` CollectorType string `yaml:"collectorType"` // http|log // if collectorType is http, the target is zipkin server // if collectorType is log, the target is log file CollectorTarget string `yaml:"collectorTarget"` }
TracingStruct tracing structure