- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
- 使用华为云CSE注意事项
- Nacos引擎
-
ServiceComb引擎
- 如何进行本地开发和测试?
- 证书加载错误
- 无效头名称
- mesher性能损耗是多少?
- 连接服务中心提示“Version validate failed”
- 连接服务中心提示“Not enough quota”
- 如何处理开启了安全认证的ServiceComb引擎专享版开启IPv6后服务注册失败?
- 服务名重复校验范围是什么?
- 为什么一定要定义服务契约?
- 如何解决微服务应用开发过程中微服务开发框架同netty版本不匹配的问题?
- ServiceComb专享版引擎版本从1.x升级到2.x时有哪些注意事项?
- 用户业务从微服务引擎专业版迁移到微服务引擎专享版checklist
- 创建引擎提示“Duplicate cluster name”
- 创建引擎过程中处理接入地址步骤失败,提示the subnet could not be found
- 本地轻量化注册服务报错:does not match rule: {Max: 100, Regexp: ^[a-zA-Z0-9]{1,160}$|^[a-zA-Z0-9][a-zA-Z0-9_\-.]{0,158}[a-zA-Z0-9]$}"}
- SpringCloud应用连接ServiceComb引擎2.x版本配置中心失败
- 在全局配置中配置相关的配置项修改后,服务获取的配置内容未修改成功
- 获取配置失败
- 视频帮助
- 通用参考
展开导读
链接复制成功!
Java Chassis使用配置中心
- Java Chassis使用以config-center命名的配置中心。
<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>config-cc</artifactId> </dependency>
如果项目已经直接或者间接包含如上依赖,则无需添加。Java Chassis包含如表1所示配置项,这些配置项的值指定了微服务在配置中心的身份,以及微服务和配置中心之间的交互。
表1 Java Chassis常用配置项 配置项
含义
缺省值
备注
servicecomb.service.application
所属应用
default
-
servicecomb.service.name
微服务名称
defaultMicroservice
-
servicecomb.service.version
微服务版本
1.0.0.0
-
servicecomb.service.environment
环境
-
取值为环境ID。如production,development等。
servicecomb.config.client.serverUri
访问地址,格式为http(s)://{ip}:{port},以“,”分隔多个地址
http://127.0.0.1:30103
config-center
servicecomb.config.client.tenantName
应用的租户名称
default
config-center
- Java Chassis使用以kie命名的配置中心。
需要在项目中增加如下依赖:
<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>config-kie</artifactId> </dependency>
如果项目已经直接或者间接包含如上依赖,则无需添加。Java Chassis包含如表2所示配置项,这些配置项的值指定了微服务在配置中心的身份,以及微服务和配置中心之间的交互。
表2 Java Chassis常用配置项 配置项
含义
缺省值
备注
servicecomb.service.application
所属应用
default
-
servicecomb.service.name
微服务名称
defaultMicroservice
-
servicecomb.service.version
微服务版本
1.0.0.0
-
servicecomb.service.environment
环境
-
取值为环境ID。如production,development等。
servicecomb.kie.serverUri
kie访问地址,格式为http(s)://{ip}:{port},以“,”分隔多个地址
-
kie
servicecomb.kie.firstRefreshInterval
首次刷新配置项的时间间隔,单位为毫秒
3000
kie
servicecomb.kie.refresh_interval
刷新配置项的时间间隔,单位为毫秒
3000
kie
servicecomb.kie.domainName
应用的租户名称
default
kie
- 第一种是使用archaius API,例子如下:
DynamicDoubleProperty myprop = DynamicPropertyFactory.getInstance() .getDoubleProperty("trace.handler.sampler.percent", 0.1);
archaius API支持callback处理配置变更:
myprop.addCallback(new Runnable() { public void run() { // 当配置项的值变化时,该回调方法会被调用 System.out.println("trace.handler.sampler.percent is changed!"); } });
- 第二种方式是使用Java Chassis提供的配置注入机制,使用这种方式能够非常简单的处理复杂配置,和配置优先级,例子如下:
@InjectProperties(prefix = "jaxrstest.jaxrsclient") public class Configuration { /* * 方法的 prefix 属性值 "override" 会覆盖标注在类定义的 @InjectProperties * 注解的 prefix 属性值。 * * keys属性可以为一个字符串数组,下标越小优先级越高。 * * 这里会按照如下顺序的属性名称查找配置属性,直到找到已被配置的配置属性,则停止查找: * 1) jaxrstest.jaxrsclient.override.high * 2) jaxrstest.jaxrsclient.override.low * * 测试用例: * jaxrstest.jaxrsclient.override.high: hello high * jaxrstest.jaxrsclient.override.low: hello low * 预期: * hello high */ @InjectProperty(prefix = "jaxrstest.jaxrsclient.override", keys = {"high", "low"}) public String strValue;
执行注入:
ConfigWithAnnotation config = SCBEngine.getInstance().getPriorityPropertyManager() .createConfigObject(Configuration.class, "key", "k");
- 第三中方式在和Spring、Spring Boot集成的时候使用,可以按照Spring、Spring Boot的原生方式读取配置,比如@Value、@ConfigurationProperties。Java Chassis将配置层次应用于Spring Environment中,Spring和Spring Boot读取配置的方式,也能够读取到microservice.yaml和动态配置的值。
有关Java Chassis读取配置的更多内容,请参考社区开发指南。