1. 程式人生 > 其它 >Solon cloud 使用融斷器 sentinel 或 guava 或 semaphore

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