Skip to content

v1.5.0 release note

Compare
Choose a tag to compare
@xmtsui xmtsui released this 17 Aug 11:03
· 66 commits to master since this release
5e246ce

所有MR以及issue见milestone1.5.0,修改内容包括:

兼容性

  • 该版本对于使用Rpc协议的用户向前兼容
  • 对自定义协议的用户,因为有一些代码重构,不向前兼容。

v1.5.0的pom依赖

<!-- 日志门面使用slf4j,日志实现可以选择log4j、log4j2、logback,可参考:https://github.com/alipay/sofa-bolt/wiki/log_implementation_jar -->
 <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.25.Final</version>
</dependency>
<dependency>
    <groupId>com.alipay.sofa</groupId>
    <artifactId>bolt</artifactId>
    <version>1.4.2</version>
</dependency>
<dependency>
    <groupId>com.alipay.sofa.common</groupId>
    <artifactId>sofa-common-tools</artifactId>
    <version>1.0.12</version>
</dependency>
<dependency>
    <groupId>com.alipay.sofa</groupId>
    <artifactId>hessian</artifactId>
    <version>3.3.0</version>
</dependency>

主要改动

feature

  • [feature] 之前默认一直是UnpooledByteBufAllocator,本次启用PooledByteBufAllocator
  • [feature] netty的WriteBufferWatermark,之前只能通过系统参数设置高低水位,本次修改成用户级的api方式设置参数,不同实例(RpcClient或者RpcServer)这个水位的参数设置,互不影响。
  • [feature] 为了提供用户级的api方式设置参数,重构了参数设置的类。PropertiesManager类改成了ConfigManager。同时抽象了一个ConfigurableInstance供client与server继承。
  • [feature] 在支持epoll的环境,开启支持epoll
  • [feature] 支持对多个请求类型生效的用户处理器

tuning

  • [tuning] 优化服务端给客户端返回的序列化异常的响应,之前没有带上causeBy导致客户端不能知道明确的异常,本次加上了这块的信息:包括服务端序列化响应异常与服务端反序列化请求异常。
  • [tuning] 一些错误日志创建方式的优化,主要是用String.format来做格式化。
  • [tuning] 服务端启动如果因为端口占用启动失败,之前不会抛异常,只是会提示启动失败。本次把异常抛出来,明确可以知道是端口占用导致启动失败。
  • [tuning] 启动失败的时候,会触发初始化。之前没有把初始化的资源释放掉,本次修复了这个问题。启动失败后,会确保初始化的资源也释放掉。
  • [tuning] RemotingServer抽象成接口,比当前的抽象类要好(逻辑更加清晰)
  • [tuning] 重构ConnectionFactory,适配用户自定义协议。将registerUserProcessor方法从ConnectionFactory中移除,使ConnectionFactory的逻辑更加清晰,修复一些代码风格的问题

bugfix

  • [bugfix] 修改全局开关(GlobalSwitch)的生效优先级,这里算是缺陷,比如之前系统级开关会优先于用户级开关生效。导致某一个客户端实例开启了重连等特性,其他实例也默认开启了。本次修改改成了用户参数优先生效。
  • [bugfix] 服务端的排队超时快速失败开关,不生效。本次修复了此问题。
  • [bugfix] 修复一些不影响用户的小缺陷,以及PMD检查出来的问题
  • [bugfix] 修复DefaultConnectionManager日志对象获取错误的问题。
  • [bugfix] 修复JDK1.6的CI编译问题

upgrade

  • [upgrade] 因为安全原因,升级hessian到3.3.2

refactor

  • Configs类与ProtocolSwitch类的包路径改动。跟配置相关的类都统一放在了com.alipay.remoting.config包下面。