Solon Cloud 是一套防腐层的架构方案。提供统一的接口定义和配置设计,从而实现不同框架统一体验的效果。
目前,已适配的融断器有三个插件且体验方式完全相同,分别是:
- sentinel-solon-plugin
- semaphore-solon-plugin
- guava-solon-plugin
1、配置示例(此配置可通过配置服务,动态更新)
在应用配置文件 “app.yml”,添加如下配置:
solon.cloud.local:
breaker:
root: 100 #根断路器的阀值(即“默认阀值”)
main: 200 #qps = 100 #main 为断路器名称(如果不配,则默认为 root 阀值)
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");
}
}
}
}