1. 配置管理
1.1. 功能截图
1.2. 知识点
说明NTC配置中心(zues)是NTC应用配置管理中心,可以支持不同数据中心、灰度版本应用配置,定时发布,无感知对接等功能。配置修改后能够实时推送到应用端,不同于传统应用配置修改需要重新打包上线等。
zues管理的配置不是应用上所有的配置,而是用户认为需要修改的配置。
1.3. 功能详述
配置管理功能包含了设置、加解密工具、以及配置修改、发布等常用功能,如下图:
1.3.1. 加解密工具
zeus提供3DES和RSA两种加密方式。通过输入密文、明文选择解加密方式得出明文、密文。用于配置应用密文时候使用,zeus客户端会自动解密密文。
用户不通过zeus也可以使用NTC提供的基础包next-probe.jar中的EncryptionDispatch来加解密
加密:
EncryptionDispatch.encrypt("明文",EncryptionType.THREEDES);
或者
EncryptionDispatch.encrypt("明文",EncryptionType.RSA);
解密:
EncryptionDispatch.decrypt("密文")
zeus 3DES/RSA加密的密文分别以@NTCDES和@NTCRSA 打头
1.3.2. 批量发布、导入、导出
批量发布:选择多个本地保存的配置文件批量发布
批量导出:将用户选择的多个配置文件导出,用于不同环境(开发、测试、生产),不同IDC导入
批量导入:将导出的配置文件批量导入,导入的配置文件默认都为未发布状态
1.3.3. 配置列表
- 字段说明
应用:分为公共,各个应用配置。在各个应用没有配置的情况下使用公共的配置,各个应用有配置的情况使用各个应用自身的配置。一般用于像数据库地址等公共配置
状态:分为已发布、未发布、定时发布。
已发布:该配置文件的所有配置项已经通知应用获取使用
未发布:该配置文件存在配置项未通知应用获取使用
定时发布:该配置文件存在未发布的配置项在指定时间点通知应用获取使用
配置项:该配置文件有多少zeus管理的配置项(具体的key-value)
版本号:该配置文件的版本号,版本号会在配置文件每次修改的时候递增
配置内容:该配置文件配置项信息
其他信息:分为正在使用客户端列表、未使用客户端列表、配置通知异常列表
已获取配置实例列表:该应用的应用实例已经获取了该配置文件
未获取配置实例列表:该应用的应用实例未获取该配置文件
配置通知异常列表:改配置文件修改了,通知应用实例获取的时候发生的异常。异常分为解析、更新、触发监听三种类型异常,都表示存在应用实例未更新配置的情况。该种情况可以再做一次修改重新通知,或者排查客户端代码是否有问题。
操作:分为修改、修改历史详情、灰度
修改:对配置文件配合项的增加、删除、修改等操作,可以见下面的配置文件修改功能描述
修改历史详情:配置文件的修改历史版本列表,可以做还原和删除等操作
灰度:点击生成该配置文件的灰度版本配置
- 配置修改
新增、批量新增
通过输入配置名称、key(和应用的可以对应)、重启生效(表示本次修改的配置在应用配置重启之后生效,本次发布也不会生效,一般用于数据库连接地址等涉及比较多的bean的配置)、加密(选择相应的加密类型,新增加密后的配置值,会自动填充配置值输入框)、备注(对该配置的说明,非必输)。
立即发布、定时发布、保存
立即发布:将该配置文件的配置项立即发布到应用实例使用
定时发布:将该配置文件的配置项指定时间发布到应用实例使用
保存:将本次变动的配置项先保存在zeus中,可以在下一次发布、后者批量发布
配置项列表
这里展示了该配置文件所有的配置项、包括不同的状态。新增表示该配置项是新增的尚未通知应用实例,删除表示配置项从应用实例撤销发布,应用实例使用自己系统的配置值(该操作可以恢复),修改表示对已经发布的配置进行本次修改尚未通知应用实例,已发布表示该配置项已经通知应用实例。
版本变动
和上一次发布版本相比本地变动的配置项列表,通过该列表可以快速知道哪些配置没有发布到应用实例。
- 配置灰度
点击灰度按钮生成该配置文件灰度配置文件,点击修改可以新增灰度配置文件配置项
从主版本选择要添加到灰度版本的配置文件,点击保存。之后再配置项列表可以对灰度配置项进行操作。
灰度规则展示该应用灰度和正常版本实例分布情况
1.3.4. 字典key配置
zeus支持动态修改字典,key值规范:以message打头下划线+语言+国家+@+应用字典code。要是message+语言+国家获取不到会再去获取message@+code值,再获取不到的时候返回应用配置的字典,否则取zeus配置的字典值。如下:
message@IdType.02=文职干部证
表示:应用字典IdType.02在没有指定语言和国家的情况下的配置值为 文职干部证
message_zh_CN@IdType.02=文职干部证
表示:应用字典IdType.02在指定语言为:zh,国家为:CN的情况下的配置值为 文职干部证
message_en@IdType.02=something
表示:应用字典IdType.02在指定语言为:en的情况下的配置值为 something
注:使用zeus的动态修改字典必须使用next-probe.jar提供的ZuseMessageSource,其他不变,如下:
<bean id="messageSource" class="com.csii.next.zeus.ZuseMessageSource">
<property name="defaultEncoding" value="UTF-8" />
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>