将Dubbo应用接入AHAS应用防护后,可以对其配置流控、降级和系统规则来保证系统稳定性。本文将帮助您了解如何使用SDK方式将Dubbo应用接入应用防护。

操作步骤

  1. 登录AHAS控制台,然后在页面左上角选择地域
  2. 在左侧导航栏中选择流量防护 > 应用流控
  3. 应用列表页面右上角单击新应用接入
  4. 接入语言选择Java接入方式选择SDK接入接入环境选择Dubbo应用接入

    Dubbo应用接入页面查看Pom依赖最新版本和License信息(非公网地域不需要)。

    Dubbo
  5. 选择以下任意一种方式,在Dubbo应用中添加应用防护依赖。

    若是Spring Boot/Spring Cloud应用,则可以按照接入Spring Boot/Spring Cloud应用的方式进行接入,AHAS会自动识别Dubbo服务埋点。详情请参见接入Spring Boot/Spring Cloud应用

    • 在Dubbo应用的Pom文件中添加以下依赖(默认支持Dubbo 2.6.x版本):
      <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>ahas-sentinel-client</artifactId>
        <!-- 可指定版本号,最新版本见AHAS控制台应用防护应用接入页引导。 -->
        <version>x.y.z</version>
      </dependency>
      说明Dubbo应用接入页签查看Pom依赖最新版本,将x.y.z替换为新版本的版本号。
      若您使用Dubbo 2.7.x版本,请添加以下依赖:
      <!-- SDK/Starter需1.6.2及以上版本,并排掉sentinel-dubbo-adapter依赖 -->
      <dependency>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>ahas-sentinel-client</artifactId>
          <version>1.6.2</version>
          <exclusions>
              <exclusion>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-dubbo-adapter</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <!-- 使用开源2.7.x adapter依赖-->
      <dependency>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>sentinel-apache-dubbo-adapter</artifactId>
          <version>1.7.0</version>
          <exclusions>
              <exclusion>
                  <groupId>com.alibaba.csp</groupId>
                  <artifactId>sentinel-core</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
    • 添加JAR包依赖。

      Dubbo应用接入页面单击请点此链接下载下载压缩包,并将压缩包中的所有JAR包放置在classpath目录下。

  6. 通过以下任意一种方式,配置应用的启动参数。
    • 添加JVM -D参数。
      //将AppName替换为自定义的应用名称
      -Dproject.name=AppName
      //将AppName替换为自定义的应用名称,将 <license> 替换为真实值。
      -Dproject.name=AppName
      -Dahas.license=<license>
    • 修改Spring Property配置文件。

      若通过Spring Boot/Spring Cloud方式接入,则可以将参数配置到application.properties文件中,在application.properties配置文件中,配置如下:

      #指定您要接入的特定的AHAS环境ahas.namespace=default
      #自定义您的应用名称project.name=AppName
      #指定您要接入的特定的AHAS环境ahas.namespace=default
      #自定义您的应用名称project.name=AppName
      #配置license信息ahas.license=<license>

  7. (可选)您可以自定义Dubbo应用触发限流、降级或系统保护规则时的fallback处理逻辑,自定义DubboFallback接口并通过DubboFallbackRegistry注册即可。配置后,当Dubbo应用触发流控、降级或系统规则时,AHAS会将BlockException包装后抛出。详情请参见Dubbo Adapter
    说明 若未执行此步骤,当Dubbo应用触发应用防护规则时,默认抛出BlockException异常类的子类(触发流控规则,则抛出流控异常FlowException;触发降级规则,则抛出降级异常DegradeException)。

结果验证

启动应用并调用配置埋点的方法。若该应用出现在AHAS控制台流量防护 > 应用防护页面,且在该应用的监控详情页面有能看到配置埋点的方法,则说明接入成功。

后续操作

为应用配置应用防护规则请参见以下文档: