Solon

sentinel-solon-cloud-plugin

v2.7.5 </> markdown
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>sentinel-solon-cloud-plugin</artifactId>
</dependency>

1、描述

分布式扩展插件。基于 sentinel 适配的 solon cloud 融断器插件。提供基本的融断或限流服务。

2、配置示例(此配置可通过配置服务,动态更新)

solon.cloud.local:
  breaker:
    root: 100 #根断路器的阀值(即默认阀值)
    main: 150 #qps = 100 #main 为断路器名称(不配置则为 root 值)

2、通过注解,添加埋点

//此处的注解埋点,名称与配置的断路器名称须一一对应
@CloudBreaker("main")
@Controller
public class BreakerController {
    @Mapping("/breaker")
    public void breaker() throws Exception{
        Thread.sleep(1000); //方便测试效果
    }
}

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");
            }
        }
    }
}

4、引入控制台

参考:https://github.com/alibaba/Sentinel/wiki/控制台