功能开关是一个轻量级的动态配置框架,通过功能开关可以动态管理代码中的配置项,根据需求为某个应用开启或关闭部分功能,或设置某个性能指标的阈值。功能开关通常用于设置黑白名单、运行时动态调整日志级别、降级业务功能等场景。
背景信息
通常业务代码中包含许多的配置项,这些配置项用于控制各种各样的业务逻辑,例如一个bool类型的变量控制某个功能是否开启,一个list控制访问白名单或黑名单,一个String控制提示信息。开发者通常希望可以动态、实时地去查看和修改配置项,并且期望不需要编写额外的代码来管理,此时就可以利用AHAS功能开关来实时修改和查看对应的配置项。与传统的配置中心不同,开发者使用AHAS功能开关时,无需关注配置项的解析逻辑,只需声明对应的变量,加上AHAS功能开关的注解即可在功能开关控制台对配置进行动态管理。
主要功能
常用场景
- 运行时动态调整日志级别:在不同的应用场景下,您可能需要调整日志的级别,得到更有效的日志信息。功能开关提供了在应用运行时动态修改日志级别的功能。只要在应用中增加日志级别开关,然后在控制台中设置开关的推送值,即可快速的调整日志运行的级别,从而得到更有效的日志信息。具体操作步骤,请参见运行时动态调整日志级别。
- 主动降级业务功能:通常一个业务功能包含许多的业务逻辑,其中可以区分出一些核心业务和非核心业务。在高并发的情况下,例如618、双十一等场景,为了提升系统性能,系统需要减少非必要业务的资源消耗,对非必要的业务功能进行主动降级。只要在应用中定义降级业务开关,然后在控制台设置开关推送,即可快速实现业务的降级。具体操作步骤,请参见主动降级业务功能。
- 黑白名单功能:黑白名单是常用的访问控制规则,通过功能开关可以快速实现黑白名单功能。只要在应用中增加黑名单开关或白名单开关,然后在控制台设置开关推送即可。具体操作步骤,请参见快速实现黑白名单功能。
注意事项
在有些IDE中,尤其是使用Spring Boot技术栈的时候,SwitchManager和用户自己的代码使用的是不同的ClassLoader加载的,会导致功能开关在云端修改后,在用户的工程中由于不同ClassLoader的问题取不到最新修改的值。
接入指引
使用SDK接入
使用SDK接入
适用于Java语言的任何框架,只需简单定义、初始化后即可接入功能开关。
使用Spring Boot Starter接入
使用Spring Boot Starter接入
Spring boot类应用专用接入方式,简化接入流程。
文档内容是否对您有帮助?