SpringCloud(19):Sentinel定义资源的方式
Sentinel除了基本的定义资源的方式之外,还有其他的定义资源的方式,具体如下:
- 抛出异常的方式定义资源
- 返回布尔值方式定义资源
- 异步调用支持
- 注解方式定义资源
- 主流框架的默认适配
1 抛出异常的方式定义资源
Sentinel中的SphU包含了try-catch风格的API。用这种方式,当资源发生了限流之后会抛出 BlockException。这个时候可以捕捉异常,进行限流之后的逻辑处理,而我们在入门案例中就使用的此种方式进行定义资源,关键代码如下:
try (Entry entry = SphU.entry("Hello")){//限流入口return "Hello Sentinel!";//被保护的资源} catch (BlockException e) {e.printStackTrace();return "系统繁忙,请稍候";//被限流或者降级的处理}
<