Skip to content

2.1.5 升级 2.6.0 指导

支持@NotBlank@NotEmpty

参考下面的例子。这个新的特性在一些特殊的情况下可能导致业务故障,比如业务错误的加上了这些标签,但是实际上不会做参数校验,现在变更为校验。

public class Teacher {

  @NotBlank
  private String name;

  private String age;

  // getters, setters
}

servicecomb.rest.client.connection.idleTimeoutInSeconds 缺省值修改为 30s

因为服务端HTTP连接的Idle Timeout时间设置通常是60s(包括Vert.x、Tomcat等),为了尽可能降低客户端使用已经关闭了连接 的概率,调整了这个参数的默认值。如果业务系统中没有设置这个参数,并且有些场景将 servicecomb.request.timeout 设置 为大于30s, 那么可能导致这些请求提前超时。

更多详细信息可以参考案例

nettyvert.x 升级

2.6.0目前使用了最新的 nettyvert.x 版本, 这两个软件最新版本做了较多的重构,需要保证版本匹配才能够正常工作。 业务尽可能不要自行单独调整单个软件的版本,保持和java-chassis使用一致,否则容易导致一些兼容性问题。 未来的版本,两个软件 的兼容情况应该会有所改善,建议业务升级后,及时调整这两个软件的废弃用法。

这两个软件升级目前已知的可能影响业务功能的点包括:

  • servicecomb.rest.server.maxFormAttributeSize 的缺省值为 8192。 java-chassis的缺省值使用了 vert.x 的缺省值。这个值在最近的几个版本中,发生过几次变更,从无限制变更为1024, 变更为2048,到现在的8192。 如果业务需要 依赖比较大的值,建议在配置文件设置适合应用场景的限制,不跟随这个缺省值。

SpringSpring Boot 升级

2.6.0目前使用了最新的 SpringSpring Boot 版本,这个版本存在少量的变更,可能在某些特殊场景下影响业务功能。已知的情况包括:

  • 对URL进行了更加严格的校验,以符合HTTP协议标准。早期一些不符合标准的URL可能会报告错误。
  • StringUtilsisEmpty方法废弃了,这个方法容易造成误用,建议切换使用其他接口或者使用Commons Lang组件的接口。