Java Chassis | English Maven Central License

Apache ServiceComb Java Chassis 给开发者提供一个快速构建微服务的JAVA SDK。它包含如下特性:

  • 基于Open API的契约优先(API First)开发模式,满足开发过程可管理、开发规范可验证要求。
  • 多种开发风格,REST(JAX-RS、Spring MVC)和RPC等,高效支持遗留系统迁移和新系统开发场景。
  • 多种通信协议, HTTP over Vert.x、Http Over Servlet、Highway等,满足不同场景对于性能、韧性的需求。
  • 统一一致的服务提供者、服务消费者处理链,易于扩展新功能。
  • 提供服务发现、配置管理、熔断、限流、灰度发布等开箱即用的服务治理能力。

可以通过设计选型参考 了解更多特性和设计原理。

发布版本

版本火车最新版本编译的JDK版本支持的JDK版本Open API备注
Java Chassis 33.1.1OpenJDK 17OpenJDK 173.0.x依赖Spring Boot 3
Java Chassis 22.8.16OpenJDK 8OpenJDK 8, 11, 172.0.x依赖Spring 5
Java Chassis 11.3.11OpenJDK 8OpenJDK 82.0.x停止更新

NOTICE: Open API 3.0.x 不兼容 2.0.x, 因此Java Chassis 2、Java Chassis 1不能与Java Chassis 3共存互访. 升级Java Chassis 3, 需要将相关的消费者、提供者和边缘服务同时升级.

NOTICE: Java Chassis 1 第一个版本于2018发布,已经停止更新.

快速开始

  • 定义服务契约
@RequestMapping(path = "/provider")
public interface ProviderService {
  @GetMapping("/sayHello")
  String sayHello(@RequestParam("name") String name);
}
  • 定义提供者
@RestSchema(schemaId = "ProviderController", schemaInterface = ProviderService.class)
public class ProviderController implements ProviderService {
  @Override
  public String sayHello(String name) {
    return "Hello " + name;
  }
}
  • 定义消费者
@Configuration
public class ProviderServiceConfiguration {
  @Bean
  public ProviderService providerService() {
    return Invoker.createProxy("provider", "ProviderController", ProviderService.class);
  }
}

使用RPC方式访问提供者。

@RestSchema(schemaId = "ConsumerController", schemaInterface = ConsumerService.class)
public class ConsumerController implements ConsumerService {
  private ProviderService providerService;

  @Autowired
  public void setProviderService(ProviderService providerService) {
    this.providerService = providerService;
  }

  @Override
  public String sayHello(String name) {
    return providerService.sayHello(name);
  }
}

下载并体验上述示例项目 .

用户文档

请访问 ServiceComb Java Chassis 开发指南.

编译 Java Chassis

开发者可以通过MAVEN仓库使用Java Chassis。 如果需要构建项目,需要使用JDK 17版本,并预先安装maven。

  mvn clean install

运行测试用例

开发者需要预先安装docker。

  mvn clean install -Pdocker -Pit

使用docker machine。

  mvn clean install -Pdocker -Pit -Pdocker-machine

联系我们

报告缺陷: issues

邮件列表: subscribe dev

参与代码提交

参考 如何做贡献.

License

Licensed under an Apache 2.0 license.