Documentation ¶
Index ¶
- Constants
- func SetGlobalConfig(gc GlobalConfig)
- func SetSentinelConfig(sc SentinelConfig)
- func SetServerConfig(sc ServerConfig)
- type ConsulConf
- type DBConfig
- type DBType
- type Enabled
- type FlowRule
- type GlobalConfig
- type GrpcConf
- type HotspotRule
- type HttpConf
- type JwtConfig
- type LogConf
- type NsqConfig
- type OtelConfig
- type RedisConfig
- type RuleStrategy
- type SentinelConfig
- type ServerConfig
- type SvcConf
- type SvcMode
Constants ¶
View Source
const ( PostgreSQL = "postgres" MySQL = "mysql" )
Variables ¶
This section is empty.
Functions ¶
func SetGlobalConfig ¶
func SetGlobalConfig(gc GlobalConfig)
func SetSentinelConfig ¶
func SetSentinelConfig(sc SentinelConfig)
func SetServerConfig ¶
func SetServerConfig(sc ServerConfig)
Types ¶
type ConsulConf ¶
type ConsulConf struct { // ConsulAddr 服务配置中心路径 ConsulAddr string `env:"CONSUL_ADDR" yaml:"consulAddr"` // ConfigNode 配置节点,越往后优先级越高 ConfigNode []string `yaml:"configNode"` // RegisterTTL 注册时限 RegisterTTL uint16 `env:"CONSUL_REGISTER_TTL" yaml:"registerTTL"` // RegisterInterval 注册间隔 RegisterInterval uint16 `env:"CONSUL_REGISTER_INTERVAL" yaml:"registerInterval"` }
type DBConfig ¶
type DBConfig struct { // Enabled 是否启用redis,1是2否 Enabled Enabled `yaml:"enabled"` // DBType DbType DBType `yaml:"dbType"` // 服务器地址 Path string `yaml:"path"` //端口 Port string `yaml:"port"` // 高级配置 Config string `yaml:"config"` // 数据库名 Dbname string `yaml:"dbName"` // 数据库用户名 Username string `yaml:"username"` // 数据库密码 Password string `yaml:"password"` // 空闲中的最大连接数 MaxIdleConns int `yaml:"maxIdleConns"` // 打开到数据库的最大连接数 MaxOpenConns int `yaml:"maxOpenConns"` }
func (DBConfig) AllAaccordance ¶
AllAaccordance 完全一致
func (DBConfig) MainAaccordance ¶
MainAaccordance 主要配置一致
type FlowRule ¶
type FlowRule struct { // TokenCalculateStrategy 当前流量控制器的Token计算策略。Direct表示直接使用字段 Threshold 作为阈值;WarmUp表示使用预热方式计算Token的阈值。 TokenCalculateStrategy flow.TokenCalculateStrategy `yaml:"tokenCalculateStrategy"` // ControlBehavior 表示流量控制器的控制策略;Reject表示超过阈值直接拒绝,Throttling表示匀速排队。 ControlBehavior flow.ControlBehavior `yaml:"controlBehavior"` // Threshold 表示流控阈值;如果字段 StatIntervalInMs 是1000(也就是1秒),那么Threshold就表示QPS,流量控制器也就会依据资源的QPS来做流控。 Threshold float64 `yaml:"threshold"` // MaxQueueingTimeMs 匀速排队的最大等待时间,该字段仅仅对 Throttling ControlBehavior 生效; MaxQueueingTimeMs uint32 `yaml:"maxQueueingTimeMs"` // WarmUpPeriodSec 预热的时间长度,该字段仅仅对 WarmUp 的 TokenCalculateStrategy 生效; WarmUpPeriodSec uint32 `yaml:"warmUpPeriodSec"` // WarmUpColdFactor 预热的因子,默认是3,该值的设置会影响预热的速度,该字段仅仅对 WarmUp 的 TokenCalculateStrategy 生效; WarmUpColdFactor uint32 `yaml:"warmUpColdFactor"` // StatIntervalInMs 规则对应的流量控制器的独立统计结构的统计周期。如果 StatIntervalInMs 是1000,也就是统计QPS。 StatIntervalInMs uint32 `yaml:"statIntervalInMs"` }
FlowRule 无参限流配置
type GlobalConfig ¶
type GlobalConfig struct { // RedisConfig redis配置 RedisConfig RedisConfig `yaml:"redisConfig"` // JwtConfig jwt配置 JwtConfig JwtConfig `yaml:"jwtConfig"` // OtelConfig 遥测体系配置 OtelConfig OtelConfig `yaml:"otelConfig"` // NsqConfig NSQ消息队列监听 NsqConfig NsqConfig `yaml:"nsqConfig"` }
func GetGlobalConfig ¶
func GetGlobalConfig() GlobalConfig
type HotspotRule ¶
type HotspotRule struct { // MetricType 流控指标类型,支持两种:请求数和并发数 MetricType hotspot.MetricType `yaml:"metricType"` // ControlBehavior 流控的效果,仅在请求数模式下有效。支持两种:快速失败和匀速+排队模式 ControlBehavior hotspot.ControlBehavior `yaml:"controlBehavior"` // ParamIndex 热点参数的索引,对应 WithArgs(args ...any) 中的参数索引位置,从 0 开始 ParamIndex int `yaml:"paramIndex"` // ParamKey 参数键 ParamKey string `yaml:"paramKey"` // Threshold 限流阈值(针对每个热点参数) Threshold int64 `yaml:"threshold"` // MaxQueueingTimeMs 最大排队等待时长(仅在匀速排队模式 + QPS 下生效) MaxQueueingTimeMs int64 `yaml:"maxQueueingTimeMs"` // BurstCount 静默值(仅在快速失败模式 + QPS 下生效) BurstCount int64 `yaml:"burstCount"` // DurationInSec 统计结构填充新的 token 的时间间隔 (仅在请求数(QPS)流控模式下生效) DurationInSec int64 `yaml:"durationInSec"` // ParamsMaxCapacity 统计结构的容量最大值(Top N) ParamsMaxCapacity int64 `yaml:"paramsMaxCapacity"` // SpecificItems 特定参数的特殊阈值配置,可以针对指定的参数值单独设置限流阈值,不受前面 Threshold 阈值的限制。 SpecificItems map[any]int64 `yaml:"specificItems"` }
HotspotRule 热点参数限流配置
type JwtConfig ¶
type JwtConfig struct { // SigningKey 签名密钥 SigningKey string `env:"JWT_SIGNING_KEY" yaml:"signingKey"` // ExpiresTime 过期时限,单位秒 ExpiresTime uint64 `env:"JWT_EXPIRES_TIME" yaml:"expiresTime"` }
JwtConfig jwt配置
type LogConf ¶
type LogConf struct { // Level 日志级别 Level string `env:"LOG_LEVEL" yaml:"level"` // Director 输出文件夹 Director string `env:"LOG_DIRECTOR" yaml:"director"` // MaxAge 最大天数 MaxAge uint8 `env:"LOG_MAX_AGE" yaml:"maxAge"` // LogInConsole 是否输出到控制台 LogInConsole Enabled `env:"LOG_IN_CONSOLE" yaml:"logInConsole"` }
func (*LogConf) TransportLevel ¶
type NsqConfig ¶
type NsqConfig struct { // Enabled 是否开启NSQ消息队列,1是2否 Enabled Enabled `env:"NSQ_ENABLED" yaml:"enabled"` // ProducerAddr 用于生产者使用的nsqd服务地址 ProducerAddr string `env:"NSQ_NSQD_ADDR" yaml:"producerAddr"` // ConsumerAddr 用于消费者使用的nsqlookupd服务地址 ConsumerAddr string `env:"NSQ_LOOKUPD_ADDR" yaml:"consumerAddr"` }
NsqConfig NSQ消息队列配置
type OtelConfig ¶
type OtelConfig struct { // Enabled 是否启用遥测体系,1是2否 Enabled Enabled `env:"OTEL_ENABLED" yaml:"enabled"` // CollectorGrpcEndpoint collector端口 CollectorGrpcEndpoint string `env:"OTEL_COLLECTOR_ENDPOINT" yaml:"collectorGrpcEndpoint"` }
OtelConfig 遥测体系配置
type RedisConfig ¶
type RedisConfig struct { // Enabled 是否启用redis,1是2否 Enabled Enabled `env:"REDIS_ENABLED" yaml:"enabled"` // Addr redis域名地址 Addr string `env:"REDIS_ADDR" yaml:"addr"` // Password redis密码 Password string `env:"REDIS_POSSWORD" yaml:"password"` // DB redis子库 DB uint8 `env:"REDIS_DB" yaml:"db"` }
RedisConfig redis配置
type RuleStrategy ¶
type RuleStrategy struct { // FlowRules限流配置 FlowRules []FlowRule `yaml:"currentLimitRules"` // HotspotRules 热点限流配置 HotspotRules []HotspotRule `yaml:"hotspotRules"` }
type SentinelConfig ¶
type SentinelConfig struct { // Enabled 是否开启熔断限流,1是2否 Enabled Enabled `yaml:"enabled"` // SvcRuleStrategy 服务全局熔断限流策略 SvcRuleStrategy RuleStrategy `yaml:"svcRuleStrategy"` // ApisRuleStrategys 接口级熔断限流策略 ApisRuleStrategys map[string]RuleStrategy `yaml:"apisRuleStrategys"` }
func GetSentinelConfig ¶
func GetSentinelConfig() SentinelConfig
type ServerConfig ¶
type ServerConfig struct { // SvcConf 服务配置 SvcConf SvcConf `yaml:"svcConf"` // ConsulConf consul配置 ConsulConf ConsulConf `yaml:"consulConf"` // LogConf 日志配置 LogConf LogConf `yaml:"logConf"` }
func GetServerConfig ¶
func GetServerConfig() ServerConfig
type SvcConf ¶
type SvcConf struct { // SvcMode 服务模式,1正式2测试 SvcMode SvcMode `env:"SVC_MODE" yaml:"svcMode"` // SvcName 服务部署名 SvcName string `env:"SVC_NAME" yaml:"svcName"` // SvcNum 服务实例序号 SvcNum uint8 `env:"SVC_NUM" yaml:"svcNum"` // SvcVersion 服务版本号 SvcVersion string `env:"SVC_VERSION" yaml:"svcVersion"` // Http 配置 Http HttpConf `yaml:"http"` // Grpc 配置 Grpc GrpcConf `yaml:"grpc"` }
Click to show internal directories.
Click to hide internal directories.