Solon cloud 使用融断器 sentinel 或 guava 或 semaphore
Solon 已适配的融断器有三个插件且体验方式完全相同,分别是:
- sentinel-solon-plugin
- semaphore-solon-plugin
- guava-solon-plugin
1、配置示例(此配置可通过配置服务,动态更新)
在应用配置文件 “app.yml”,添加如下配置:
solon.cloud.local:
breaker:
main: 100 #qps = 100 #main 为断路器名称(可添加多个,到处埋点)
2、通过注解,添加埋点
//此处的注解埋点,名称与配置的断路器名称须一一对应
@CloudBreaker("main")
@Controller
public class BreakerController {
@Mapping("/breaker")
public void breaker(){
//...业务处理
}
}
3、手动模式埋点
public class BreakerFilter implements Filter {
@Override
public void doFilter(Context ctx, FilterChain chain) throws Throwable {
if (CloudClient.breaker() == null) {
chain.doFilter(ctx);
} else {
//此处的埋点,名称与配置的断路器名称须一一对应
try (AutoCloseable entry = CloudClient.breaker().entry("main")) {
chain.doFilter(ctx);
} catch (BreakerException ex) {
throw new IllegalStateException("Request capacity exceeds limit");
}
}
}
}