將Web應用接入AHAS應用防護后,可以對其配置流控、降級和系統規則來保證系統穩定性。本文介紹如何使用SDK方式將Web應用接入應用防護。
操作步驟
- 登錄AHAS控制臺。
- 在AHAS控制臺左上角,選擇應用接入的地域。
- 在控制臺左側導航欄中選擇 。
在應用防護頁面右上角單擊新應用接入,然后在JAVA語言頁簽,單擊SDK接入,單擊Web應用接入。
選擇以下任意一種方式,在Web應用中添加應用防護依賴。
在Web應用的Pom文件中添加以下依賴。
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>ahas-sentinel-client</artifactId> <version>x.y.z</version> </dependency>
在Web應用接入頁面第一步:添加Pom依賴中查看Pom依賴最新版本,將
x.y.z
替換為新版本的版本號。添加JAR包依賴。
在Web應用接入頁面單擊請點此鏈接下載下載壓縮包,并將壓縮包中的所有JAR包放置在classpath目錄下。
在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>
配置應用的啟動參數。
類別
配置參數示例
非公網
-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>替換為真實值。
若在公網地域,需要查看License信息。請在第三步:配置啟動參數區域查看(非公網地域不需要),具體請參見查看License。
可選:您可以通過以下兩種方式來設定自定義的跳轉URL,當請求觸發流控、降級或系統規則時會自動跳轉至設定的URL。
通過
WebServletConfig.setBlockPage(blockPage)
方法設定自定義的跳轉URL。通過UrlBlockHandler接口編寫定制化的限流處理邏輯,然后將其注冊至WebCallbackManager中來實現,更多信息,請參見Web Servlet Filter擴展接口。
說明默認情況下,當請求觸發流控、降級或系統規則時會返回默認提示頁面,提示信息為:
Blocked by Sentinel (flow limiting)
。可選:可以自定義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控制臺,在左側導航欄選擇 ,若在應用防護頁面出現該應用的資源卡片且有數據上報,則說明接入成功。
地域與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 |