Documentation
¶
Overview ¶
Package loadshedding 提供过载保护(LoadShedding)实现。
提供两种策略: - semaphore:固定并发数控制(默认) - bbr:基于 CPU + inflight 的自适应过载保护
适用场景: - 微服务模式下默认启用,提供 HTTP/gRPC/RPC 统一的过载保护能力; - 当系统过载时立即拒绝请求,防止级联故障。
配置示例:
load_shedding:
enabled: true
strategy: bbr # 或 semaphore
bbr:
cpu_threshold: 0.8
window_size: 10s
bucket_count: 100
Index ¶
- Variables
- type Provider
- func (p *Provider) Boot(c runtimecontract.Container) error
- func (p *Provider) DependsOn() []string
- func (p *Provider) IsDefer() bool
- func (p *Provider) Name() string
- func (p *Provider) Provides() []string
- func (p *Provider) Register(c runtimecontract.Container) error
- func (p *Provider) Requires() []string
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrLoadShedded = resiliencecontract.ServiceUnavailable("server is busy: load shedding active")
ErrLoadShedded 表示请求因过载保护被丢弃。
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct{}
Provider 是 LoadShedder 能力 provider。 将 LoadShedding 契约实现注册到容器中,供 HTTP 中间件和 RPC 客户端使用。
中文说明: - 根据 strategy 配置选择 semaphore 或 bbr 实现; - semaphore:固定并发数控制,默认最大并发 = GOMAXPROCS * 100; - bbr:自适应过载保护,根据 CPU + inflight 动态调整。
func (*Provider) Boot ¶
func (p *Provider) Boot(c runtimecontract.Container) error
Boot 启动期初始化(无额外操作)。
func (*Provider) DependsOn ¶
DependsOn returns the keys this provider depends on. LoadShedding provider has no dependencies.
DependsOn 返回该 provider 依赖的 key。 LoadShedding provider 无依赖。
Click to show internal directories.
Click to hide internal directories.