org.springframework.boot 引入版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--<version>2.5.14</version>-->
<version>2.4.2</version>
</parent>
sentinel 引入版本
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2021.1</version>
</dependency>
服务端使用版本
版本号:1.8.0
下载地址:https://github.com/alibaba/Sentinel/releases/download/v1.8.0/sentinel-dashboard-1.8.0.jar
启动命令:java -Dserver.port=9005 -jar sentinel-dashboard-1.8.0.jar
默认用户名密码均为:sentinel
配置文件
spring:
application:
name: ms-system
cloud:
sentinel:
transport:
post: 8718
dashboard: 192.168.2.96:9005
heartbeat-interval-ms: 500
client-ip: 192.168.2.96
** 遇到问题
在进行规则编辑时 json转换对象报错
原因:本项目中引用过 fastjson 版本为2.0.1,版本高,降低版本
解决方案:删除引用的jar包,sentinel会自动下载版本:1.2.71
自定义异常处理结果
@Component
public class ExceptionHandlePage implements UrlBlockHandler {
//BlockException 异常接口,包含Sentinel的五个异常
// FlowException 限流异常
// DegradeException 降级异常
// ParamFlowException 参数限流异常
// AuthorityException 授权异常
// SystemBlockException 系统负载异常
@Override
public void blocked(HttpServletRequest request, HttpServletResponse response, BlockException e) throws IOException {
response.setContentType("application/json;charset=utf-8");
ResponseData data = null;
if (e instanceof FlowException) {
data = new ResponseData(-1, "接口被限流了...");
}
else if (e instanceof DegradeException) {
data = new ResponseData(-2, "接口被降级了...");
}
response.getWriter().write(JSON.toJSONString(data));
}
@Data
@AllArgsConstructor
@NoArgsConstructor
class ResponseData{
private Integer id;
private String msg;
}
}