概述
通常业务代码中包含许多的配置项用于控制服务启停、黑名单、提示文案等业务逻辑。开发者通常希望可以动态、实时地去查看和修改配置项,并且期望编写尽可能少的额外代码。
功能开关提供了一个轻量级的动态配置框架,可以在项目中快速接入配置,并在控制台实时管理配置项。与传统的配置中心不同,您无需关注配置项的解析逻辑和配置中心运维,声明配置对应的变量即可在应用配置控制台查看配置聚合信息并进行统一的管理。
使用场景
常用场景1: 业务降级
在高并发的场景下,可以声明开关变量,对非核心业务逻辑加入开关控制,然后在性能负载大的情况下在控制台控制开关,屏蔽非核心业务逻辑,从而提升系统性能。
常用场景2: 黑白名单
在常见的访问控制场景下,可以声明黑白名单变量,在控制台对黑白名单变量进行修改推送,动态控制黑白名单。
接入应用
在Pom文件中加入以下依赖
1.<dependency>
2. <groupId>cn.ctyun</groupId>
3. <artifactId>mse-switch-client</artifactId>
4. <version>1.0-SNAPSHOT</version>
5.</dependency>
声明功能开关
在字段上加上cn.ctyun.mse.center.annotation.AppSwitch 注解,字段修饰符必须为 public static。
(可选)在字段上加上cn.ctyun.mse.center.annotation.SwitchGroup注解,定义开关的分类,注解缺失时默认按类名进行分类。
1.public class ConfigTest {
2. @AppSwitch(des = "String 类型开关")
3. public static String stringSwitch = "string";
4.
5. @AppSwitch( des = "Float 类型开关" )
6. public static Float floatSwitch = 4.87F;
7.}
初始化开关
调用以下方法完成初始化,方法参数为可变参数,支持初始化多个开关常量类。SwitchManager.init(ConfigTest.class)。
配置启动参数并重新部署
-Dmse.licenseKey={your licenseKey}
-Dmse.namespace=default
-Dswitch.endpoint=xxxxxxxxxx
验证接入结果
进入控制台-应用-功能开关页面,若开关列表出现声明的开关且节点列表出现应用所在节点,则说明接入成功。
查看功能开关
功能开关可以查看开关类型、生效节点数、开关分布信息、使用实例 ID 和 IP 等信息。
功能入口
- 登录微服务治理控制台。
- 在控制台左侧导航栏中选择应用治理。
- 在应用治理页面的应用卡片页签单击目标应用卡片。
- 在左侧导航栏选择功能开关,进入目标应用的开关列表,列表展现方式有分组模式和全部开关模式,可以展开查看开关的描述、生效节点数、使用的实例ID、IP 等信息。
- 单击操作列的值分布,即可查看对应开关信息和分布信息,包括值编号、开关值等。
推送开关值
功能开关提供开关值的推送能力,动态覆盖应用的配置项。功能开关支持全局推送和单机推送两种推送方式。
功能入口
- 登录微服务治理控制台。
- 在控制台左侧导航栏中选择应用治理。
- 在应用治理页面的应用卡片页签单击目标应用卡片。
- 在左侧导航栏选择功能开关,进入目标应用的开关列表。
- 单击开关列表页面操作列的全局推送或单机推送,在右侧弹出开关推送页面,在此页面中可查看开关名、分组、开关类型等信息,并可以编辑推送值。
- 完成编辑推送值后,单击下一步:值对比,会显示出修改点。若还需修改,则单击上一步:返回修改,若修改完成,则单击单机推送或全局推送(全局推送为持久化推送,即重启之后开关值仍然生效)。
查看历史记录
功能开关提供开关推送的历史记录查询,包括推送的值、类型、操作时间、生效节点等信息。
功能入口
- 登录微服务治理控制台。
- 在控制台左侧导航栏中选择应用治理。
- 在应用治理页面的应用卡片页签单击目标应用卡片。
- 在左侧导航栏选择功能开关,单击历史记录,进入目标应用的开关推送历史记录页面。
- 按开关名、推送类型、操作时间等条件过滤。
- 单击操作列下的查看,可以查看此条推送记录的开关名、分组、推送类型、推送值和生效IP。