sentinel我们之前都是用的熔断都是sentinel的报错信息,还有添加热点的时候我们的控制器方法跟我们处理的异常信息在一个类中,这样的话耦合度是比较高的,也不能统一管理;
添加我们需要的返回结果的handle类:
必须是static public修饰的;
package com.xcll.cloudalibabasentinel.blockhandle;
import com.alibaba.csp.sentinel.slots.block.BlockException;
public class ConsumerBlockHandle {
public static String block_handle1(BlockException e) {
return "block_handle1 系统异常,请稍后再试!";
}
public static String block_handle2(BlockException e) {
return "block_handle1 网络开小差了,请稍后再试!";
}
}
@SentinelResource blockHandleClass: 是我们处理的类; blockHandles:具体方法
@GetMapping("/testBlockHandle")
@SentinelResource(value = "testBlockHandle", blockHandlerClass = ConsumerBlockHandle.class, blockHandler = "block_handle1")
public String test() {
return "test";
}
@GetMapping("/testBlockHandle2")
@SentinelResource(value = "testBlockHandle2", blockHandlerClass = ConsumerBlockHandle.class, blockHandler = "block_handle2")
public String test2() {
return "test";
}