欢迎来到 Sentinel 的世界!这篇新手指南将指引您快速入门 Sentinel Go。
注:最新内容请参考 Sentinel Go 官方文档,wiki 内容将不再更新。
引入Sentinel依赖:
Sentinel支持mod的依赖,可以通过release页面获取最新release版本:https://github.com/alibaba/sentinel-golang/releases
github.com/alibaba/sentinel-golang v1.0.4
定义资源
资源是 Sentinel 中的最核心概念之一,Sentinel中所有的限流熔断机制都是基于资源生效的,不同资源的限流熔断规则互相隔离互不影响。
资源在Sentinel中的定义很抽象,用户可以灵活的定义,资源可以是应用、接口、函数、甚至是一段代码。我们的限流熔断机制都是为了保护这段资源运行如预期一样。
用户通过Sentinel api 包里面的接口可以把资源包起来,这一步称为“埋点”,通过限流熔断规则来保护资源。每个埋点都有一个资源名称(resource),代表触发了这个资源的调用或访问。api接口参考:https://github.com/alibaba/sentinel-golang/tree/master/api
fmt.Println("hello world");
规则配置
针对埋点资源配置相应的规则,来达到流量控制的效果。目前 Sentinel 支持五种规则:
基于QPS限流的完整的示例
Demo 运行后,可以看到控制台每秒稳定输出 "Passed" 10 次,和规则中预先设定的阈值是一样的。我们可以在 metric 日志里看到类似下面的输出:
some-test