sentinel 限流、熔断、降级
限流:为了用户体验,当流量超过了服务自身范围,拒绝超出的流量访问
熔断:系统在设计之初就把熔断措施考虑进去。当系统出现问题时,如果短时间内无法修复,系统要自动做出判断,开启熔断开关,拒绝流量访问,避免大流量对后端的过载请求。
降级:将系统的所有功能服务进行一个分级,当系统出现问题需要紧急限流时,可将不是那么重要的功能进行降级处理,停止服务,这样可以释放出更多的资源供给核心功能的去用。
example
package main import ( "fmt" sentinel "github.com/alibaba/sentinel-golang/api" "github.com/alibaba/sentinel-golang/core/base" "github.com/alibaba/sentinel-golang/core/flow" ) func main() { // 初始化 sentinel err := sentinel.InitDefault() if err != nil { panic(err) } // 配置限流规则 _,err = flow.LoadRules([]*flow.Rule{ { Resource: "some-test", Threshold: 10, // 10 个请求 StatIntervalInMs: 1000, // 1 秒之内 TokenCalculateStrategy: flow.Direct, // 规定时间内,只能有多少请求 ControlBehavior: flow.Reject, // 超出的流量全部拒绝 }, }) if err != nil { panic(err) } // 循环接收请求 for i := 0; i < 13; i++ { e,b := sentinel.Entry("some-test",sentinel.WithTrafficType(base.Inbound)) if b != nil { fmt.Println("限流了") } else { fmt.Println("正常通过") e.Exit() } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具