功能開關是一個輕量級的動態配置框架,通過功能開關可以動態管理代碼中的配置項,根據需求為某個應用開啟或關閉部分功能,或設置某個性能指標的閾值。功能開關通常用于設置黑白名單、運行時動態調整日志級別、降級業務功能等場景。
背景信息
通常業務代碼中包含許多的配置項,這些配置項用于控制各種各樣的業務邏輯,例如一個bool類型的變量控制某個功能是否開啟,一個list控制訪問白名單或黑名單,一個String控制提示信息。開發者通常希望可以動態、實時地去查看和修改配置項,并且期望不需要編寫額外的代碼來管理,此時就可以利用AHAS功能開關來實時修改和查看對應的配置項。與傳統的配置中心不同,開發者使用AHAS功能開關時,無需關注配置項的解析邏輯,只需聲明對應的變量,加上AHAS功能開關的注解即可在功能開關控制臺對配置進行動態管理。
主要功能
常用場景
運行時動態調整日志級別:在不同的應用場景下,您可能需要調整日志的級別,得到更有效的日志信息。功能開關提供了在應用運行時動態修改日志級別的功能。只要在應用中增加日志級別開關,然后在控制臺中設置開關的推送值,即可快速的調整日志運行的級別,從而得到更有效的日志信息。具體操作步驟,請參見運行時動態調整日志級別。
主動降級業務功能:通常一個業務功能包含許多的業務邏輯,其中可以區分出一些核心業務和非核心業務。在高并發的情況下,例如618、雙十一等場景,為了提升系統性能,系統需要減少非必要業務的資源消耗,對非必要的業務功能進行主動降級。只要在應用中定義降級業務開關,然后在控制臺設置開關推送,即可快速實現業務的降級。具體操作步驟,請參見主動降級業務功能。
黑白名單功能:黑白名單是常用的訪問控制規則,通過功能開關可以快速實現黑白名單功能。只要在應用中增加黑名單開關或白名單開關,然后在控制臺設置開關推送即可。具體操作步驟,請參見快速實現黑白名單功能。
注意事項
在有些IDE中,尤其是使用Spring Boot技術棧的時候,SwitchManager和用戶自己的代碼使用的是不同的ClassLoader加載的,會導致功能開關在云端修改后,在用戶的工程中由于不同ClassLoader的問題取不到最新修改的值。
接入指引
使用SDK接入
使用SDK接入
適用于Java語言的任何框架,只需簡單定義、初始化后即可接入功能開關。
使用Spring Boot Starter接入
使用Spring Boot Starter接入
Spring boot類應用專用接入方式,簡化接入流程。