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