天天看點

springcloud(11)Alibaba-AHAS 限流方式

前期準備

能正常啟動的springboot項目

使用的中間件:HSF、edas-config-center

配置AHAS

1. 在項目的springboot中 添加jar包依賴

Pom

<!--    AHAS    start-->
            <!--   應用接入控制台     -->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>ahas-sentinel-client</artifactId>
            <!-- 可指定版本号,最新版本見 AHAS 控制台流控降級應用接入頁引導。 最新1.4.5-->
            <version>1.4.5</version>
        </dependency>

            <!--      啟動方式①用JVM -D 參數啟動      -->
            <!--       啟動方式②用properties配置檔案啟動,需要引入此jar     -->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
            <!-- 可指定版本号,最新版本見 AHAS 控制台流控降級應用接入頁引導。 最新1.4.0-->
            <version>1.4.0</version>
        </dependency>


            <!--     使用注解@SentinelResource進行埋點 ,需要先引入 Spring AOP 并開啟     -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

            <!--    添加sentinel的依賴    -->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-annotation-aspectj</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-transport-simple-http</artifactId>
        </dependency>

        <!--    AHAS    end-->
           

相關介紹

ahas-sentinel-client 相關springboot項目接入AHAS控制台的核心jar
spring-boot-starter-ahas-sentinel-client 使用applicaton.properties來配置屬性,需添加此jar
spring-boot-starter-aop 使用注解@SentinelResource進行埋點 ,需要先引入 Spring AOP 并開啟
sentinel-core 阿裡給的github示例demo中有引入此jar
sentinel-annotation-aspectj
sentinel-transport-simple-http

2.  在項目裡添加配置類

@Configuration
public class SentinelAspectConfiguration {

    @Bean
    public SentinelResourceAspect sentinelResourceAspect() {
        return new SentinelResourceAspect();
    }
}
           

3. 在通路接口中使用注解定義埋點

@SentinelResource(value = "queryUserList")//埋點
    @RequestMapping(value = "/queryUserList" ,method = RequestMethod.GET )
    @ResponseBody
    public RspPage<QueryUserRspBo> queryUserList(QueryUserReqBo queryUserReqBo) {
        RspPage<QueryUserRspBo> rspPage = null;

        try {
            rspPage = queryUserListService.queryListPage(queryUserReqBo);
        }
        catch (Exception e){
            log.error("失敗了:{}", e.getMessage());
        }

        return rspPage;
    }
           

4. 添加配置檔案

application.properties

#AHAS
#指定您要接入的特定的 AHAS 環境
ahas.namespace=default
#自定義您的應用名稱
project.name=admin
#配置 license 資訊
ahas.license=XXXXXXXXXXXX
           

此處使用配置檔案來填寫配置資訊,注意是在引入相關jar的前提下。

還可使用JVM 參數的方式來配置

-Dproject.name=AppName
-Dahas.license=<license>      

關于license 的擷取,檢視下面的步驟 

5. 啟動項目

配置阿裡雲控制台

1. 免費開通,ASAH的服務

https://www.aliyun.com/product/ahas?spm=a2c4g.11186623.2.9.6f4b3cbb7hGV9e

springcloud(11)Alibaba-AHAS 限流方式

2. 将區域切換為 公網,擷取license

springcloud(11)Alibaba-AHAS 限流方式

點選 新應用接入

springcloud(11)Alibaba-AHAS 限流方式

點選SDK,即可看到系統自動建立的license

springcloud(11)Alibaba-AHAS 限流方式

3. 調用一次@SentinelResource 的接口,即可在頁面看到springboot項目

springcloud(11)Alibaba-AHAS 限流方式

4. 添加相關的限流規則

點選 應用名 admin

再點選【流控規則】

springcloud(11)Alibaba-AHAS 限流方式

 點選

springcloud(11)Alibaba-AHAS 限流方式

填寫相關資訊,資源名稱 對應 @SentinelResource 定義的value值

springcloud(11)Alibaba-AHAS 限流方式

5. 啟用規則,OK完成

還需了解其他相關資訊,可參考其他部落格:

https://blog.csdn.net/hosaos/article/details/91413895