- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 使用前必读
- 权限管理
- 环境管理
- 应用管理
- 组件管理
- 配置管理
- 全链路流量控制
- 发布管理(公测)
- 技术栈管理
- 部署源管理
- 持续交付
- 微服务引擎
- 云审计服务支持的关键操作
- 查看监控指标及告警
- 开发指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 应用开发问题咨询指引
- 环境管理
-
应用管理
- 如何查看应用组件部署失败的原因?
- 如何解决单击应用组件外部访问地址返回504的问题?
- 如何处理虚拟机类型环境下应用创建实例失败?
- 实例长期处于创建中怎么办?
- 如何解决Docker运行node应用程序时的依赖问题?
- 如何定制Tomcat Context path?
- 如何固定应用组件IP?
- 如何处理虚拟机类型环境下创建和部署组件时遇到ECS错误?
- 如何处理虚拟机类型环境下创建和部署组件时端口访问不通的错误?
- 虚拟机类型环境下部署的应用组件支持在什么目录写文件?
- 如何处理虚拟机类型环境下部署的组件删除失败报host status is not active错误的问题?
- 如何体验ServiceStage的源码部署功能?
- 如何处理使用ServiceStage灰度发布升级组件失败?
- 如何通过挂载配置项方式修改容器部署的组件配置文件?
- 如何处理应用组件接入微服务引擎后在微服务治理下看到的应用名称和ServiceStage应用管理下的不同?
- 持续交付
- 软件中心
- 基础设施
- 应用运维
- 应用开发问题
- 视频帮助
- 文档下载
- 通用参考
展开导读
链接复制成功!
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读取配置的更多内容,请参考社区开发指南。