Spring cloud微服务安全实战-6-10sentinel之热点和系统规则
热点规则 热点就是经常访问的数据。很多时候我们希望争对某一些热点数据,然后来进行限制。比如说商品的信息这个服务,我们给它做一个限流,qps是100,某一天我想做一个秒杀活动,可能会有很大的流量,这个时候一个商品的qps就达到100了,这个时候就会把流量给他控制住。其他的商品就都看不了。 我希望秒杀这个商品,只把秒杀这个上商品id来的请求,它的qps限制在50,剩下还能留下50给我其他的商品。这是我们碰到的场景。 这个时候我们就需要我们能根据请求的参数来做限流。带的参数是我的热点参数,就给你应用一个特殊的规则。没带我的热点参数,非热点有另外一个限流规则。但是他们调用的是同一个服务。 说白了就是,针对同一个资源,针对不同的参数做不同的流量规则。 sentinel里面这个规则怎么去实现 给getInfo方法加上sentinel的注解。做成一个Resource,然后才可以根据getInfo来制定一些规则 我们根据id的参数不同做限流的规则 这样我就声明了一个新的资源。 启动orderAPI 返回回来就是一个订单信息。 这样服务就调用通了,有了一些流量后。 id为1的qps是1,不是1 的qps是10. 现在传的是2 qps是10怎么点 都不会有限流的问题。 换成id为1,如果一旦点快了。返回500 就说明被限流了。 id是1的时候抛出了ParamFlowException的异常