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, 那么可能导致这些请求提前超时。
更多详细信息可以参考案例。
netty
和vert.x
升级
2.6.0目前使用了最新的 netty
和 vert.x
版本, 这两个软件最新版本做了较多的重构,需要保证版本匹配才能够正常工作。
业务尽可能不要自行单独调整单个软件的版本,保持和java-chassis使用一致,否则容易导致一些兼容性问题。 未来的版本,两个软件
的兼容情况应该会有所改善,建议业务升级后,及时调整这两个软件的废弃用法。
这两个软件升级目前已知的可能影响业务功能的点包括:
servicecomb.rest.server.maxFormAttributeSize
的缺省值为 8192。 java-chassis的缺省值使用了vert.x
的缺省值。这个值在最近的几个版本中,发生过几次变更,从无限制变更为1024, 变更为2048,到现在的8192。 如果业务需要 依赖比较大的值,建议在配置文件设置适合应用场景的限制,不跟随这个缺省值。
Spring
和 Spring Boot
升级
2.6.0目前使用了最新的 Spring
和 Spring Boot
版本,这个版本存在少量的变更,可能在某些特殊场景下影响业务功能。已知的情况包括:
- 对URL进行了更加严格的校验,以符合HTTP协议标准。早期一些不符合标准的URL可能会报告错误。
StringUtils
的isEmpty
方法废弃了,这个方法容易造成误用,建议切换使用其他接口或者使用Commons Lang组件的接口。