目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven 学习目标:学习Sentinel的自定义URL限流异常 本次学习的工程下载链接放到文本最后面
Blocked by Sentinel (flow limiting)
@Service
public class CustomUrlBlockHandler implements UrlBlockHandler {
@Override
public void blocked(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws IOException {
httpServletResponse.setHeader("Content-Type","application/json;charset=UTF-8");
String message = "{\"code\":999,\"msg\":\"访问人数过多\"}";
//如果加了转义符号看不明白
//使用类创建就json对象
httpServletResponse.getWriter().write(message);
}
}
或者是触发限流后我们希望跳转到其他界面(降级界面)我们可以配置spring.cloud.sentinel.servlet.block-page={url}来实现
修改application中的文件为:
spring:
application:
name: springboot-sentinel-sample
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:7777
servlet:
block-page: /goerror
在DashboardController控制器里面加一个接口
@GetMapping("/goerror")
private String error(){
return "error";
}
我们先把我们的我们自定义限流异常给注释掉,加上我们的降级跳转界面(记得重新给我们的Sentinel Dashboard上流控规则)。
多刷新几次这个界面 http://localhost:8080/dash 看到的效果如下:
下载链接:sentinel-sample2.rar