Skip to content

2.8.x 升级 3.0.0 指导

3.0.0版本的重要更新:

  • 最小支持 JDK 17
  • 采用Spring Boot 3作为开发底座,底层实现依赖Spring Boot 3,不再提供Spring启动方式。

本文档提供2.8.x升级到3.0.0的指导。

依赖配置和启动类

Java Chassis原生Transport

Java Chassis原生提供了 Rest Over Vert.x, Highway等原生Transport。Edge Service也使用原生Transport运行。

TODO

Spring Boot Servlet Transport

Java Chassis支持运行与Servlet容器,自身作为一个Servlet启动。

TODO

独立WEB容器 Servlet Transport

Java Chassis支持运行与Servlet容器,自身作为一个Servlet启动。

TODO

配置项不在支持 cse 前缀

Java Chassis 的所有配置项全部使用 servicecomb 作为前缀,比如:

servicecomb:
  service:
    application: my-application
    name: my-service

早期版本,也支持下面的配置:

cse:
  service:
    application: my-application
    name: my-service

3.0.0 版本不再提供 cse 前缀支持,需要将 cse 前缀修改为 servicecomb

移除 log4j , logback 的封装

Java Chassis 系统内部全部采用 slf4j 记录日志, 不再提供 log4j 的封装功能, 删除了 Log4jUtils 等类。 如果使用了 Log4jUtils 类来初始化日志, 可以参考 配置日志 来设置系统日志。

移除 bizkeeper 处理链

Java Chassis 早期版本基于 Hystrix 提供了基于方法的服务治理能力,由于社区已经停止 Hystrix 维护,并且 bizkeeper 设计上不能很好的满足场景的故障模式保护, 3.0.0 版本删除了这个模块。 服务治理可以使用流量特征治理来实现,过载保护的最佳处理方案是配置客户端隔离仓。

移除实例隔离功能

Java Chassis 3.0.0 不在支持下面的配置项:

servicecomb:
  loadbalance:
    isolation:
      enabled: false
      errorThresholdPercentage: 0
      enableRequestThreshold: 5
      singleTestTime: 60000
      continuousFailureThreshold: 5
      maxSingleTestWindow: 60000 # 为了保证在并发情况下只有一个实例放通,会锁定放通实例。这个时间表示最大锁定时间。
      minIsolationTime: 3000 # 最短隔离时间。并发情况下,实例隔离后进行中的请求可能快速刷新隔离状态,增加最短隔离时间。
      recoverImmediatelyWhenSuccess:true # 放通实例,如果调用成功,立即清除统计状态,保证后续请求能够使用该实例。 2.1.3 新增。

单实例故障防护可以使用流量特征治理来实现,启用客户端熔断和客户端隔离仓。

提供新的 archetypes 插件

TODO