关于sentinel的流控问题

来源:8-5 流控规则

动作100分

2021-07-12

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

写回答

1回答

大目

2021-07-13

您好,非常棒的问题!

确实,默认情况下,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
2
大目
回复
动作100分
一样啊,一个拦截器搞定
2021-07-13
共2条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3082 学习 · 1323 问题

查看课程