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()
        }
    }
}
复制代码

 

posted @   JaydenQiu  阅读(128)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示