本文介紹了應用高可用服務AHAS涉及的基本概念和四大子模塊的基本概念,了解這些基本概念有助于您更好地使用本產品。
通用概念:
流量防護相關概念:
故障演練相關概念:
功能開關相關概念:
多活容災相關概念:
什么是應用高可用服務環境(AHAS環境)?
通常情況下,用戶有生產、測試、開發環境,各環境的資源是隔離的。AHAS通過“環境”劃分各環境下的應用高可用服務作用范圍,包含一個環境下的應用高可用服務資源。
AHAS環境按地域劃分,每個地域會有一個默認(Default)環境,您也可以添加自定義環境。
什么是探針?
應用高可用服務AHAS包括以下兩種探針:
- 應用高可用探針(即AHAS探針):這是安裝在操作系統上的獨立進程,用來采集架構信息。使用架構感知、故障演練功能前需安裝此探針。
- 應用高可用Java探針:這是針對JVM的Java探針,通過字節碼增強技術進行實時監控和流量防護。如果需要使用流量防護功能,可安裝此探針。
什么是架構和架構組件?
架構分為水平和垂直兩個維度:
水平架構:進程拓撲、容器拓撲、主機拓撲
垂直架構:進程、容器和主機之間的依賴關系
架構組件是指架構的組成部分,包含進程(應用進程、第三方組件進程、云服務)、容器、主機。
什么是故障演練?
故障演練是一款遵循混沌工程實驗原理并融合了阿里巴巴內部實踐的產品,提供豐富故障場景實現,能夠幫助分布式系統提升容錯性和可恢復性。
更多名詞解釋如下:
名詞 | 名詞解釋 |
演練 | 一個完整的、可執行的流程配置。 |
草稿 | 未配置完成的演練或修改后未保存的演練。 |
演練任務 | 一次演練的執行記錄,每執行一次演練就產生一個任務。 |
演練報告 | 一個演練任務的結果,一個演練任務對應一份報告。 |
階段 | 活動的集合,一個演練共分4個階段,每個階段包含多個活動,演練會按照階段順序執行。 |
活動 | 演練流程中的一個可運行的節點,一個演練由多個活動組成。 |
演練參數 | 一個活動運行時所需要的參數,參數決定了活動執行的結果。 |
演練對象 | 實施演練的目標主機或設備。目前以活動為最小顆粒度,不同活動可以對不同的主機或設備執行。 |
場景 | 活動的分類,例如磁盤滿載和磁盤IO高都屬于磁盤這個場景。 |
標簽 | 用戶對演練自定義的含義。一個演練可以有多個標簽,便于用戶對演練進行分類和管理。 |
什么是資源?
只要通過應用防護SDK定義的代碼,即資源,就能夠被應用防護保護起來。
大部分情況下,可以使用方法簽名、URL,甚至服務名稱作為資源名稱來標識資源。資源可以是Java應用程序中的任何內容,例如應用程序提供的Dubbo服務或HTTP API,或應用程序調用的其它應用提供的服務,甚至可以是一段代碼。
示例:
通過應用防護SDK定義的資源如下所示。
Entry entry = null;
try {
entry = SphU.entry("HelloWorld");
// 正常的業務邏輯
System.out.println("hello world");
} catch (BlockException e1) {
// 處理資源被限制的情況
System.out.println("block!");
} finally {
if (entry != null) {
entry.exit();
}
}
然后調用此資源,那么在AHAS控制臺就可以看到HelloWorld
這個資源了。
什么是規則?
在AHAS中圍繞應用或應用資源的實時狀態來設定規則,包括流控規則、降級規則和系統保護規則。
所有規則都會推送至該應用或應用資源所在的每臺機器上,并針對單臺機器生效。您可以通過控制臺動態實時調整規則。
什么是流控(或稱限流)?
流控,即流量控制,是AHAS提供的一種應用高可用防護能力。流量控制包括限流、冷啟動、削峰填谷等各種流量塑形手段。限流是根據流量,當達到您指定的閾值時立即攔截流量,進行限流,以避免被瞬時的流量高峰沖垮,從而保障您的應用高可用性。
什么是熔斷降級?
熔斷降級是分布式服務中不可缺少的一種防護手段。其原理是當應用不穩定時,通常表現為響應時間或異常比例升高,則將不穩定應用降級甚至熔斷,防止關聯應用被不穩定的應用拖垮。
什么是系統防護?
系統防護是從系統表現,例如Load、RT、QPS和線程數四個維度出發,對應用的入口流量進行控制,讓系統盡可能跑在最大吞吐量的同時保證系統穩定性。
什么是功能開關?
功能開關是一個輕量級的運行時動態配置修改框架,既可用于集中管理各應用的業務開關,也可以管理應用的運行時基礎配置。
功能開關的使用場景?
業務開關管理。一個業務經常由多個系統、多個功能模塊組成,為保證某些業務的動態性,后端程序通常會用開關來控制程序的邏輯,以達到在系統運行時切換運行邏輯的目的。
運行時配置管理。無需寫死的URL、接口名、閾值和讀取文件用的編碼、黑白名單等,直接使用功能開關即可方便快速創建運行時能覆蓋的動態配置。