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
*
* @Description: Sentinel配置类
* @Project:
* @CreateDate: Created in 2020/3/4 09:52
* @Author: liuke
*/
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));
}
}
}