通過自定義Java SDK埋點的方式將應用接入AHAS應用防護,可以更加靈活地對任意代碼塊進行操作。本文介紹如何通過自定義埋點接入AHAS應用防護。
操作步驟
- 登錄AHAS控制臺。
- 在AHAS控制臺左上角,選擇應用接入的地域。
- 在控制臺左側導航欄中選擇 。
在應用防護頁面右上角單擊新應用接入,然后在JAVA語言頁簽,單擊SDK接入,然后單擊自定義埋點。
選擇以下任意一種方式,在應用中添加應用防護依賴。
在應用的Pom文件中添加以下依賴:
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>ahas-sentinel-client</artifactId> <!-- 可指定版本號,最新版本見AHAS控制臺應用防護新應用接入頁。 --> <version>x.y.z</version> </dependency>
在自定義埋點頁面第一步:添加Pom依賴中查看Pom依賴最新版本,將
x.y.z
替換為新版本的版本號。添加JAR包依賴。
在自定義埋點頁面單擊請點此鏈接下載下載壓縮包,并將壓縮包中的所有JAR包放置在classpath目錄下。
添加埋點,使用以下代碼包住您的業務邏輯。
Entry entry = null; try { // HelloWorld為該調用資源名稱,控制臺上監控、簇點鏈路會顯示該資源。 // 配置規則的時候也是針對某個資源名稱配置。 // EntryType.IN標識該資源為入口資源,系統規則只針對入口資源生效。 entry = SphU.entry("HelloWorld", EntryType.IN); // 被保護的業務邏輯。 System.out.println("Hello Sentinel!"); } catch (BlockException e) { // 觸發流控降級,在此處進行限流處理(如fallback或記錄日志)。 } finally { // 請確保exit() 邏輯在此處被調用,并且和SphU.entry() 成對出現。 if (entry != null) { entry.exit(); } }
說明EntryType
用于區分該資源是入口流量(inbound)還是出口流量(outbound),EntryType.IN
代表入口流量,EntryType.OUT
代表出口流量。系統規則只對入口資源生效。控制臺展示的監控的應用總流量僅統計
EntryType.IN
的流量。SphU相關API文檔請參見常用類及其方法。
自定義埋點的資源名稱最長不能超過1024個字符。
配置應用的啟動參數。
類別
配置參數示例
非公網
-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。
重啟應用。
可選:使用注解方式配置應用觸發限流、降級或系統保護規則時的處理邏輯。 請參見注解方式。
說明若未執行此步驟,當應用觸發流控降級規則時,默認拋出
BlockException
異常類的子類(觸發流控規則,則拋出流控異常FlowException
;觸發降級規則,則拋出降級異常DegradeException
)。
結果驗證
登錄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 |