Skip to content

概述

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

  • 多种开发风格,REST(JAX-RS、Spring MVC)和 RPC
  • 多种通信协议, HTTP over Vert.x、Http Over Servlet、Highway 等
  • 统一一致的服务提供者、服务消费者处理链,以及基于契约的开箱即用的服务治理能力

开发者可以通过Java Chassis设计参考了解 Java Chassis 的设计思路。

开发者可以通过下面的链接获取其他版本的帮助文档。

适用版本 正式发布地址 预览版本地址
Java Chassis 3 中文, English 中文, English
Java Chassis 2 中文, English 中文, English
Java Chassis 1 中文, English 中文, English

术语表

缩略语 英文词汇 中文词汇 解释
Application Application 应用 应用代表一个软件应用的逻辑实体,表示一个有业务功能呈现给用户的计算机软件应用。一个以微服务化架构构建的应用通常由多个微服务组成。
Service Service 微服务 微服务是一种轻量级SOA架构,通常用来描述广泛用于云应用、互联网应用的一种松耦合分布式架构。
Instance Instance 微服务实例 一个微服务的最小运行和部署单元,通常对应一个应用进程。
Provider Provider 服务提供者 在微服务调用关系中处于被调用一方的服务。
Consumer Consumer 服务消费者 在微服务调用关系中处于调用发起方的服务。
Schema Schema 微服务契约 微服务契约是对外接口的OpenAPI表示。OpenAPI增强了微服务的可见性,方便服务的分发、使用和治理。
Code Style Code Style 编程模型 编程模型指如何进行服务接口开发和调用,Java Chassis提供了Spring Web MVC、JAX RS等编程模型。编程模型独立于处理链和通信模型
Filter Filter 处理链 处理链定义了一个请求的处理流程,包括编解码、服务治理、网络发送等。
Transport Transport 通信模型 通信模型定义了对象如何编解码,使用什么协议传输等。Java Chassis提供了REST、HIGHWAY等通信模型。
Load Balance Load Balance 负载均衡 当应用访问一个具有多个实例的微服务时,会涉及到路由负载均衡。可以通过配置文件配置负载均衡策略,支持随机,轮询、会话保持和基于响应时间的权值等多种负载均衡路由策略。
Rate Limiting Rate Limiting 限流 当资源成为瓶颈时,服务框架需要对消费者的访问请求做限流,启动流控保护机制。在服务消费者端和提供者端均可进行流量控制。在服务消费端,可以限制发往某个微服务提供者的请求频率;在服务提供端,可以限制每个微服务消费端发过来的请求频率,也可以根据服务提供端资源消耗情况确定总的请求频率限制,防止服务因资源耗尽而崩溃。
Service Degrade Service Degrade 降级 服务降级主要包括屏蔽降级和容错降级两种策略:屏蔽降级是指当外界的触发条件达到某个临界值时,由运维人员/开发人员决策,对某类或者某个服务进行强制降级。容错降级是指当非核心服务不可用时,可以对故障服务做业务逻辑放通,以保障核心服务的运行。
Fault Tolerance Fault Tolerance 容错 容错是消费者访问服务时出现异常的场景下的一种处理策略,出现异常后由服务框架自动选择新的服务路由进行调用。
Circuit Breaker Circuit Breaker 熔断 微服务之间通常存在依赖关系,服务调用链路可能包含多个微服务,如果链路中一个或多个服务访问延迟过高,会导致入口服务的请求不断堆积,持续消耗更多的线程、io资源,最终由于资源累积使系统出现瓶颈,造成更多服务不可用,产生雪崩效应。熔断机制就是针对上述场景设计的,当某个目标服务响应缓慢或者有大量超时情况发生时,熔断该服务的调用,对于后续调用请求,不再继续调用目标服务,直接返回,快速释放资源,等到该目标服务情况好转再恢复调用。
Bulkhead Bulkhead 隔离仓 隔离仓是一种异常检测机制,常用的检测方法是请求超时、流量过大等。一般的设置参数包括超时时间、最大并发请求数等,当超过超时时间或最大并发请求数时,记录一次异常,在熔断、实例隔离机制中,用于计算错误率。
Instance Isolation Instance Isolation 实例隔离 实例隔离通过检测实例的错误率、超时请求数等指标,短暂的屏蔽故障实例的访问,降低错误率以及防止发生雪崩效应。

帮助改善

  • Java Chassis的 文档源代码 托管在Github, 可以下载后 ,采用 MkDocs 本地使用。 也可以在 Issues 提交改进建议。

备注:Java Chassis 2和Java Chassis 3缺少英文翻译,非常期待您的帮助支持。