接入MyBatis应用

将MyBatis应用接入AHAS应用防护后,可以对其配置流控、降级和系统规则来保证系统稳定性。本文介绍使用SDK方式将MyBatis应用接入应用防护。

操作步骤

  1. 登录AHAS控制台

  2. 在AHAS控制台左上角,选择应用接入的地域。

  3. 在控制台左侧导航栏中选择流量防护 > 应用防护

  4. 应用防护页面左上角单击新应用接入

  5. JAVA语言页签,单击SDK接入,然后单击Spring Boot应用接入

  6. 通过以下任意一种方式,为应用添加依赖。

    • 方式一:在Pom文件中添加依赖:

      <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
        <!-- 可指定版本号,最新版本见AHAS控制台应用防护应用接入页。 -->
        <version>x.y.z</version>
      </dependency>

      Spring Boot应用接入页面第一步:添加Pom依赖中查看Pom依赖最新版本,将x.y.z替换为新版本的版本号。

      pom版本号.png

    • 方式二:添加JAR包依赖。

      1. 下载ahas-sentinel依赖包

      2. 解压依赖包,并将依赖包中的所有JAR包放置在classpath下。

  7. 添加拦截器。

    • 若您使用了MyBatis Spring Boot Starter,则引入AHAS依赖后会自动接入(需要spring-boot-starter-ahas-sentinel-client 1.5.1及以上版本)。

    • 若您未使用MyBatis Spring Boot Starter,则需在MyBatis应用的XML配置文件中引入SentinelMyBatisMapperInterceptor拦截器依赖:

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configuration
              PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-config.dtd">
      <configuration>
          <plugins>
            <!-- 引入AHAS Sentinel拦截器 -->
              <plugin interceptor="com.alibaba.csp.sentinel.adapter.mybatis.SentinelMyBatisMapperInterceptor"/>
          </plugins>
      </configuration>
  8. 通过以下任意一种方式,配置应用的启动参数。

    • 添加JVM -D参数。

      类别

      配置参数示例

      非公网

      -Dproject.name=AppName -Dahas.namespace=default -Dahas.regionId=<RegionId>
      说明
      • 将AppName替换为自定义的应用名称。

      • 将<RegionId>替换应用所在地域,地域与RegionId对应表请参见下文地域与RegionId对应表

      公网

      -Dproject.name=AppName -Dahas.license=<license> -Dahas.namespace=default -Dahas.regionId=cn-public
      说明

      将AppName替换为自定义的应用名称,将<license>替换为真实值。

    • application.properties文件中添加以下内容:

      类别

      示例

      非公网

      • #指定您要接入的特定的AHAS环境。

        ahas.namespace=default
      • #自定义您的应用名称。

        project.name=AppName
      • #填写应用所在地域。

        ahas.regionId=<RegionId>
        说明

        将<RegionId>替换应用所在地域,地域与RegionId对应表请参见下文地域与RegionId对应表

      公网

      • #指定您要接入的特定的AHAS环境。

        ahas.namespace=default
      • #自定义您的应用名称。

        project.name=AppName
      • #配置license信息。

        ahas.license=<license>
      • -

        ahas.regionId=cn-public

若在公网地域,需要查看License信息。请在Spring Boot应用接入页面查看(非公网地域不需要),具体请参见查看License

Spring boot license2.png

结果验证

登录AHAS控制台,在左侧导航栏选择流量防护 > 应用防护,若在应用防护页面出现该应用的资源卡片且有数据上报,则说明接入成功。

应用防护.png

地域与RegionId对应表

地域

RegionId

公网

cn-public

华东1(杭州)

cn-hangzhou

华东2(上海)

cn-shanghai

华北2(北京)

cn-beijing

华北3(张家口)

cn-zhangjiakou

华南1(深圳)

cn-shenzhen

新加坡

ap-southeast-1

德国(法兰克福)

eu-central-1

后续操作

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

当MyBatis应用触发配置的流控、降级或系统保护规则时,会抛出MyBatisSentinelBlockException类型的异常,您可以自行捕获该异常并进行处理。