Apache ServiceComb Java Chassis 2.0.0 新特性重磅出击:多配置中心支持

本文详细介绍如何在JavaChassis项目中集成并使用华为云配置中心、servicecomb-kie、nacos及Apollo等配置中心,提供了配置源的使用指南及开发贡献流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击上"蓝字"关注我们

作者 | LiuBao

很多热心的开发者给 2.0.0 贡献了很多新的特性, @guoyl123 贡献了 servicecomb-kie 的支持, @160731liupf 贡献了 nacos 的支持, 本文介绍开发者如何在自己的项目中使用这些配置中心。

01

Java Chassis 配置源介绍和使用指南

配置中心是微服务架构下一个非常重要的中间件,通过配置中心用户可以增加和删除配置信息,配置信息会通过不同的通知机制(通常包括 PULL 和 PUSH), 将配置的变化推送到微服务实例。java-chassis 允许用户使用不同的配置中心, 目前支持用户使用如下几种配置中心:

  • 华为云配置中心

华为云配置中心是华为云CSE产品的一个部件,java-chassis 最早使用它作为配置中心。对接这个配置中心的代码在 config-cc 模块实现。可以从轻量化微服务引擎(https://cse-bucket.obs.myhwclouds.com/LocalCSE/Local-CSE-1.0.3.zip)下载本地使用的版本。也可以 直接访问华为云 ServiceStage(https://console.huaweicloud.com/servicestage) 产品,使用在线的版本。

使用华为云配置中心,需要在项目中引入如下依赖:

<dependency>
  <groupId>org.apache.servicecomb</groupId>
  <artifactId>config-cc</artifactId>
</dependency>

然后在配置文件 microservice.yaml 中增加如下配置项:

servicecomb:
  config:
    client:
      serverUri: http://127.0.0.1:30113
      refreshMode: 0
      refresh_interval: 5000
      refreshPort: 30114

华为云配置中心的其他配置项含义如下:

配置项名描述
servicecomb.config.client.refreshMode应用配置的刷新方式,0为config-center主动push,1为client周期pull,默认为0
servicecomb.config.client.refreshPortconfig-center推送配置的端口
servicecomb.config.client.tenantName应用的租户名称
servicecomb.config.client.serverUriconfig-center访问地址,格式为http(s)://{ip}:{port},以,分隔多个地址
servicecomb.config.client.refresh_intervalpull模式下刷新配置项的时间间隔,单位为毫秒,默认值为30000
  • 使用 servicecomb-kie

servicecomb-kie(https://github.com/apache/servicecomb-kie) 是全新设计的配置中心。从 2.0.0 版本开始, java-chassis 支持使用 servicecomb-kie。servicecomb-kie 的安装指导可以参考官网文档。在 java-chassis 中使用 servicecomb-kie, 需要引入下面的依赖:

<dependency>
  <groupId>org.apache.servicecomb</groupId>
  <artifactId>config-kie</artifactId>
</dependency>

然后在配置文件 microservice.yaml 中增加如下配置项:

servicecomb:
  kie:
    serverUri: http://127.0.0.1:30110
    refresh_interval: 5000
    firstRefreshInterval: 5000
    domainName: default

servicecomb-kie 的配置项及其含义如下:

配置项名描述
servicecomb.kie.domainName区域名称,默认为default
servicecomb.kie.serverUriservicecomb-kie访问地址,格式为http(s)://{ip}:{port},以,分隔多个地址
servicecomb.kie.refresh_intervalpull模式下刷新配置项的时间间隔,单位为毫秒,默认值为3000
servicecomb.kie.firstRefreshIntervalpull模式下启动过程中首次刷新时间间隔,单位为毫秒,默认值为3000
  • 使用 nacos

nacos(https://github.com/alibaba/nacos) 是 alibaba 提供的配置中心。java-chassis 从 2.0.0 版本支持 nacos。nacos的下载安装请参考官网介绍。

使用nacos,需要在项目中引入如下依赖:

<dependency>
  <groupId>org.apache.servicecomb</groupId>
  <artifactId>config-nacos</artifactId>
</dependency>


然后在配置文件 microservice.yaml 中增加如下配置项:

servicecomb:
  nacos:
    serverUri: http://127.0.0.1:8848
    group: DEFAULT_GROUP
    dataId: example
  • 使用 Apollo

Apollo(https://github.com/ctripcorp/apollo) 是携程框架部门研发的分布式配置中心。Apollo的下载安装请参考官网介绍。

<dependency>
  <groupId>org.apache.servicecomb</groupId>
  <artifactId>config-apollo</artifactId>
</dependency>

然后在配置文件 microservice.yaml 中增加如下配置项:

apollo:
  config:
    serverUri: http://127.0.0.1:8070
    serviceName: apollo-test
    env: DEV
    clusters: test-cluster
    namespace: application
    token: xxx
    refreshInterval: 30
    firstRefreshInterval: 0


02

参与配置源的开发和贡献

2.0.0 版本提供了4种配置源的支持, 如果采用 Spring Boot 运行模式, 由于 Java Chassis 继承和适配了 Spring Boot 的 配置源, 因此 Spring Boot 采用的配置源也可以平滑的被 Java Chassis 应用程序使用。比如 Java Chassis 在 Spring Boot 集成模式下使用 application.yml 作为配置文件, 可以使用 git 作为动态配置源。

因此, Java Chassis 已经支持大部分开发者能够使用的配置源。然而,目前的支持仍然是不够的, 每一个不同的配置中心 都提供了非常独特的功能, Java Chassis 只是集成了它们极少的核心功能, 维护一个配置中心的支持,需要长期大量的应用 验证,才能够把功能做的稳定和强大。因此,配置中心的支持还需要开发者帮助持续的贡献代码。

Java Chassis 的配置扩展是基于 archaius (https://github.com/Netflix/archaius), 开发者只需要实现 ConfigCenterConfigurationSource,即可以接入其他配置中心。Java Chassis 的源码目录 config-cc, config-apollo, config-kie, config-nacos 分别实现了 这个接口。

  • nacos 支持PR(https://github.com/apache/servicecomb-java-chassis/pull/1405)

  • servicecomb-kie 支持PR(https://github.com/apache/servicecomb-java-chassis/pull/1518)

  • Java Chassis 通用配置说明(http://localhost:8000/config/general-config/)

如您对开源开发,微服务专家

欢迎扫描下方二维码添加

ServiceComb小助手

咱们一起做点有意思的事情〜

你点的每个赞,我都认真当成了喜欢

Apache ServiceComb Java Chassis 是一个开箱即用Java语言微服务SDK,含服务契约、编程模型、运行模型与通信模型四个部分,具备负载均衡、容错熔断、限流降级、调用链追踪等全面微服务治理能力,服务治理能力与业务逻辑隔离。 它包含如下特性: 多种开发风格,REST(JAX-RS、Spring MVC)和RPC; 多种通信协议, HTTP over Vert.x、Http Over Servlet、Highway等; 统一一致的服务提供者、服务消费者处理链,以及基于契约的开箱即用的服务治理能力。 软件特点: 高性能 Java Chassis 网络层基于 Vert.x 实现, 支持开发者使用响应式编程, 开发者在使用熟悉的REST风格设计业务接口的时候,也能够获取到非常高性能的吞吐量。同时还提供了Highway协议,满足更高性能场景的要求。 原生支持OpenAPI Java Chassis 的接口开发、服务治理都基于 Swagger ,并通过接口语义检查,使得接口定义符合 OpenAPI 规范。 灵活的开发方式 开发者可以使用 SpringMVC/JAX-RS/transparent RPC 任意一种方式定义服务端接口, 并使用RPC/RestTemplate 等方式访问这些接口. 得益于Java Chassis的通信层与开发方式分离的设计,开发者可以在 Rest over Vertx/Rest over Servlet/Highway等通信模式下自由切换。 开箱即用的服务治理能力 Java Chassis 提供了大量开箱即用的服务治理能力,包括服务发现、熔断容错、负载均衡、流量控制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值