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

操作步骤

  1. 登录 AHAS 控制台,然后在页面左上角选择地域
  2. 在左侧导航栏中选择流控降级 > 应用流控
  3. 应用列表页面右上角单击新应用接入,然后选择 SDK 接入 > Web 应用接入页签。

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

    图 1. Web 应用接入
    Web 应用接入
  4. 选择以下任意一种方式,在 Dubbo 应用中添加应用流控降级依赖。
    • 在 Dubbo 应用的 Pom 文件中添加以下依赖:
      <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>ahas-sentinel-client</artifactId>
        <version>x.y.z</version>
      </dependency>
      说明Web 应用接入页签查看 Pom 依赖最新版本,将 x.y.z 替换为新版本的版本号。
    • 添加 JAR 包依赖。

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

  5. 在 web.xml 文件中引入拦截器,并将其配置为第一个 Filter,示例如下:
    <filter>
        <filter-name>SentinelCommonFilter</filter-name>
        <filter-class>com.alibaba.csp.sentinel.adapter.servlet.CommonFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>SentinelCommonFilter</filter-name>
    <!-- 配置要拦截的 URL 模式 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>
  6. 通过以下任意一种方式,配置应用的启动参数。
    • 添加 JVM -D 参数。
      //将 AppName 替换为自定义的应用名称
      -Dproject.name=AppName
      //将 AppName 替换为自定义的应用名称,将 <license> 替换为真实值。
      -Dproject.name=AppName
      -Dahas.license=<license>
    • 修改 Spring Property 配置文件。

      如果您正在使用 Spring 框架,且希望将配置写入 Spring Property 文件中,请参见以下步骤:

      1. 在 pom.xml 中引入以下依赖:
        <dependency>
          <groupId>com.alibaba.csp</groupId>
          <artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
          <!-- 可指定版本号,最新版本见 AHAS 控制台流控降级应用接入页引导。 -->
          <version>x.y.z</version>
        </dependency>
        说明Web 应用接入页签查看 Pom 依赖最新版本,将 x.y.z 替换为新版本的版本号。
      2. application.properties 配置文件中进行以下配置:
        #指定您要接入的特定的 AHAS 环境
        ahas.namespace=default
        #自定义您的应用名称
        project.name=AppName
        #指定您要接入的特定的 AHAS 环境
        ahas.namespace=default
        #自定义您的应用名称
        project.name=AppName
        #配置 license 信息
        ahas.license=<license>
  7. (可选)您可以通过以下两种方式来设定自定义的跳转 URL,当请求触发流控、降级或系统规则时会自动跳转至设定的 URL。
    • 通过 WebServletConfig.setBlockPage(blockPage) 方法设定自定义的跳转 URL。
    • 通过 UrlBlockHandler 接口编写定制化的限流处理逻辑,然后将其注册至 WebCallbackManager 中来实现,详情请参见 Web Servlet Filter 扩展接口
    说明 默认情况下,当请求触发流控、降级或系统规则时会返回默认提示页面,提示信息为:Blocked by Sentinel (flow limiting)
  8. (可选)可以自定义 URL 清理,防止 /payment/{id} 这类 REST 风格的 URL 堆积过多影响系统性能,配置 URL 清理的方式有两种:
    • 实现自定义的 UrlCleaner 接口,自定义 URL 清理归一处理逻辑,参见Web Servlet Filter
    • 通过 properties 文件配置前缀清理。

      properties 文件中 URL 格式更改为:匹配前缀=清理后的资源名称,例如 /payment/=/payment/*。再通过启动参数 -Dcsp.sentinel.url.clean.config.path 配置文件路径。

      说明 启动参数中的默认路径为 JAR 包所在的 ahas-sentinel-url-clean.properties 文件。启动参数支持 classpath 形式,例如:Dcsp.sentinel.url.clean.config.path=classpath:ahas-sentinel-url-clean.properties

结果验证

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

后续操作

为应用配置流控降级规则请参见以下文档: