微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
@SentinelResource(value = "test", blockHandler = "handleException")
public String test(@RequestParam(value = "p", defaultValue = "0") int p) {
// 模拟业务逻辑
return "Test " + p;
}
public String handleException(int p, BlockException ex) {
// 处理限流后的逻辑
return "Blocked " + p;
}
}
这段代码演示了如何在Spring Cloud项目中使用Sentinel来限流,并提供了一个简单的控制器,其中包含一个使用了@SentinelResource
注解的方法。如果请求超出了限流规则,Sentinel会调用handleException
方法来处理被限流的请求。
评论已关闭