package com.kidgrow.sentinel.config;
|
|
import cn.hutool.json.JSONUtil;
|
import com.alibaba.csp.sentinel.adapter.servlet.callback.UrlBlockHandler;
|
import com.alibaba.csp.sentinel.adapter.servlet.callback.WebCallbackManager;
|
import com.alibaba.csp.sentinel.slots.block.BlockException;
|
import com.kidgrow.common.model.ResultBody;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
|
/**
|
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
|
*
|
* @Description: Sentinel配置类<br>
|
* @Project: <br>
|
* @CreateDate: Created in 2020/3/4 09:52 <br>
|
* @Author: <a href="4345453@kidgrow.com">liuke</a>
|
*/
|
public class SentinelAutoConfigure {
|
public SentinelAutoConfigure() {
|
WebCallbackManager.setUrlBlockHandler(new CustomUrlBlockHandler());
|
}
|
|
/**
|
* 限流、熔断统一处理类
|
*/
|
public class CustomUrlBlockHandler implements UrlBlockHandler {
|
@Override
|
public void blocked(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws IOException {
|
ResultBody result = ResultBody.failed("flow-limiting");
|
httpServletResponse.getWriter().print(JSONUtil.toJsonStr(result));
|
}
|
}
|
}
|