请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于sentinel的流控问题

老师,在实际的系统中,除了网关要对转发进行流控,各个微服务也要设置系统流控。
那微服务的每个接口都要设置流控规则吗?因为一个微服务就包含了几十上百个接口,如果每个都要设置的话,这个工作量是不是很大?

正在回答 回答被采纳积分+3

1回答

大目 2021-07-13 11:54:25

您好,非常棒的问题!

确实,默认情况下,Sentinel并没有提供诸如“全局规则”、“批量规则”的概念,意味着你确实需要为每个接口设置。


但是,让我们扩展一下:

《8-13 Sentinel API详解》讲解了Sentinel相对底层的API。

我们可以结合Spring MVC的拦截器(或者Servlet过滤器),在拦截器(或过滤器)中用Sentinel API包一下,设置统一的资源名称(例如global),并让拦截器(或过滤器)拦截所有请求,

这样,在Sentinel Dashboard上就会出现一个名为global的资源,你做下配置即可。


此外,实际项目中,并不会为每个API设置限流的。只有那些流量过大、担心被打爆的API才需要配置哈。


最后,这两个issue强烈建议看下:

https://github.com/alibaba/Sentinel/issues/66

https://github.com/alibaba/Sentinel/pull/134   这里有个全局规则的Pull Request,虽然没被合并,但是你也可以做个参考。


1 回复 有任何疑惑可以回复我~
  • 提问者 动作100分 #1
    老师那降级规则呢,这个要全部请求都要设置吗?
    回复 有任何疑惑可以回复我~ 2021-07-13 15:04:23
  • 大目 回复 提问者 动作100分 #2
    一样啊,一个拦截器搞定
    回复 有任何疑惑可以回复我~ 2021-07-13 15:21:30
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信