成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三步讓Dubbo項目快速集成Sentinel

開發 前端
在微服務系統中,緩存、限流、熔斷是保證系統高可用的三板斧。本文通過3個步驟,讓Dubbo項目快速集成使用Sentinel實現系統限流。

本文接著《5小步快速集成使用sentinel限流》,繼續介紹Dubbo項目如何快速集成使用Sentinel。

1、環境和資源準備

環境和資源準備,參看《5小步快速集成使用sentinel限流》

2、啟動sentinel-dashboard

下載sentinel-dashboard,然后執行命令啟動:java -jar sentinel-dashboard-1.8.0.jar

啟動完畢后,通過http://localhost:8080/#/dashboard訪問dashboard,出現如下界面:

3、項目集成sentinel

項目中集成sentinel分如下3步。

3.1、引入pom

<!-- 這是sentinel的核心依賴 -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-core</artifactId>
    <version>1.8.0</version>
</dependency>
<!-- 這是將自己項目和sentinel-dashboard打通的依賴 -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-transport-simple-http</artifactId>
    <version>1.8.0</version>
</dependency>
<!-- 這是dubbo集成setinel的核心依賴 -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-dubbo-adapter</artifactId>
    <version>1.8.0</version>
</dependency>

這里有一點要注意,如果有的項目之前依賴了spring-cloud-alibaba-dependencies,那要先從這個依賴里把sentinel相關依賴排除掉。不排除的情況下,可能會出現代碼配置流控規則不生效的問題。

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  <version>2.1.3.RELEASE</version>
  <type>pom</type>
  <scope>import</scope>
  <exclusions>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-annotation-aspectj</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-cluster-client-default</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-cluster-common-default</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-cluster-server-default</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-datasource-extension</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-datasource-nacos</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-parameter-flow-control</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-reactor-adapter</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-spring-webflux-webflux-adapter</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-spring-webflux-webmvc-adapter</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-datasource-nacos</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-spring-webflux-webmvc-adapter</artifactId>
      </exclusion>
      <exclusion>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-core</artifactId>
      </exclusion>
  </exclusions>
</dependency>

3.2、增加sentinel.properties配置

在application.properties同級目錄下,增加sentinel.properties文件,配置內容如下:

# 集成到sentinel的項目名稱
project.name=dubbo-sentinel-demo
# 對應的sentinel-dashboard地址
csp.sentinel.dashboard.server=localhost:8080

同時需要加載sentinel.properties配置,有兩種加載方式,選擇一種即可,如下:

3.4、配置需要被限流的資源

文中我依舊使用代碼方式配置流控規則,在控制臺中也可以直接配置流控規則,為什么不使用控制臺方式呢?主要是應用服務器的地址會變化,詳細見上一篇文章《5小步快速集成使用sentinel限流》

流控規則一般會有如下幾個:

  • 資源限流規則FlowRule
  • 異常熔斷降級規則DegradeRule
  • 系統過載保護規則SystemRule
  • 訪問黑白名單規則AuthorityRule

本文繼續使用資源限流規則做示例。

注意,Dubbo配置被限流資源時,不能使用打注解@SentinelResource的方式。要使用類名:方法名(參數類名)的方式設置資源名。比如這樣下面代碼里的RES_KEY或者INTERFACE_RES_KEY:

public class FooProviderBootstrap {

    // 資源名-具體方法
    private static final String RES_KEY = "com.alibaba.csp.sentinel.demo.dubbo.FooService:sayHello(java.lang.String)";
    // 資源名-接口
    private static final String INTERFACE_RES_KEY = "com.alibaba.csp.sentinel.demo.dubbo.FooService";

    public static void main(String[] args) {
        initFlowRule();
        System.out.println("Service provider is ready");
    }

    private static void initFlowRule() {
        FlowRule flowRule = new FlowRule();
        flowRule.setResource(RES_KEY);
        flowRule.setCount(1);
        flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);
        flowRule.setLimitApp("default");
        FlowRuleManager.loadRules(Collections.singletonList(flowRule));
    }
}

4、啟動測試

測試流程與上一篇文章《5小步快速集成使用sentinel限流》類似。只不過這次還需要在搭建一個dubbo-consumer調用dubbo-provider。

Dubbo項目與Web項目展示的限流資源有所不同:

  • 簇點鏈路:這里Web項目只會展示被限流的資源,而Dubbo只要有接口被調用就會被調用。
  • 資源名稱:在展示資源名稱時,Web項目展示的是@SentinelResource設置名稱,或者代碼里設置的資源名,而Dubbo項目只能展示完整的類名+方法名。
  • 資源展示效果如下:

限流效果如下:

5、總結

本文主要介紹Dubbo項目如何快速集成Sentinel實現系統限流。整體步驟和上一篇文章《5小步快速集成使用sentinel限流》類似。只不過有2點需要注意:

  • 老的sentinel依賴要排除掉,采用新的依賴,不排除的話,可能會導致代碼里配置的流控規則不生效。
  • 代碼設置資源時flowRule.setResource(RES_KEY);,資源定義的格式類名:方法名(參數類名),注意類名和參數類名都需要帶上完整路徑。不能直接在接口或者實現類的方法上打注解@SentinelResource。
責任編輯:華軒 來源: 不焦躁的程序員
相關推薦

2022-02-16 08:21:11

JavaSwagger工具

2019-10-24 10:00:13

歸類分組分解問題代碼

2023-09-18 14:39:02

2009-02-06 09:53:00

廣域網線路故障

2012-02-28 09:17:27

云計算

2009-09-17 13:03:54

2021-03-02 07:02:45

Linux操作系統

2009-02-03 09:48:00

DHCP服務器安全

2011-07-13 09:54:22

VMware故障vSphere

2020-11-04 00:00:29

Kerberos協議身份

2009-02-04 09:45:05

Java SocketSocket APIJava編程

2012-08-08 17:05:36

App運營

2009-11-30 09:17:59

2021-01-22 05:38:28

監控SpringbootActuator

2012-05-25 10:18:23

響應式

2016-02-17 14:37:47

云遷移云退出戰略

2021-09-04 23:27:58

Axios源碼流程

2009-10-12 13:41:00

RHEL 內核

2011-04-11 16:37:21

2020-11-02 10:51:17

Express源碼Web
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠综合久久av一区二区老牛 | 少妇一级淫片免费放播放 | 欧美成人精品一区二区男人看 | 国产精品网址 | 一级女毛片 | 欧美日韩高清在线一区 | 国产一区2区 | 成人夜晚看av | jdav视频在线观看免费 | 综合久久99| 国产精品影视 | 日韩精品久久久 | 亚洲a一区二区 | 中文字幕第二十页 | 一级免费毛片 | 国产精品黄 | 欧美激情精品久久久久 | 不卡的av在线 | 成人免费观看男女羞羞视频 | 91精品国产综合久久香蕉麻豆 | 欧美日韩综合一区 | 日韩免费一区 | 女同av亚洲女人天堂 | 欧美二区三区 | 福利视频一区二区 | 欧美综合国产精品久久丁香 | 国产福利91精品一区二区三区 | 亚洲国产精品成人 | 国产精品免费一区二区三区四区 | 天天干com | 国产免费又黄又爽又刺激蜜月al | 国产精品欧美一区二区三区不卡 | 国产精品无码久久久久 | 日韩av在线免费 | 亚洲啊v在线| 亚洲69p | 欧美一级片在线观看 | 精品久久久久久久 | 久久亚洲国产精品日日av夜夜 | 午夜影院在线观看 | 嫩草研究影院 |