Solon cloud 使用融斷器 sentinel 或 guava 或 semaphore
阿新 • • 發佈:2022-04-11
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"); } } } }