Netty 5.0.0.Alpha4 已发布,此版本删除了大量重复代码,并对 API 进行了清理。除此之外还增加了在使用 JDK NIO 实现时,对 Unix Domain Socket 的支持。
主要变化
- 支持创建包含 ProtocolFamily 的所有 SocketChannel 和 DatagramChannel 实现。ProtocolFamily 会影响像是否应该使用 Unix Domain Socket 这样的情况,不过它也允许删除 Domain*Channel 的实现,使事情变得“一致”
- 将 ChannelOption.RECVBUF_ALLOCATOR 更名为 RECVBUFFER_ALLOCATOR
- 支持 JDK 的 Unix Domain Socket
- 将 EventLoop / IoHandler 更改为 take / IoHandle 进行注册,以便将来可以将其他东西而不是 Channel 注册到EventLoop中
- 清理 RecvBufferAllocator
- 修复在 macOS 本地实现中的 disconnect() 实现
- 用 java Locks 替代 synchronized,以更好地支持 Loom
点此查看详情。
公告写道,为了让开发者能够在使用 4.1 的同时尝试体验 Netty 5,开发团队选择将两个版本放到不同的包,以便它们共存。因为这是一个新的主要版本,所以会包含许多破坏性的变化,这些变化主要受 Netty 4.1.x 生命周期汲取的经验影响。
接下来,开发团队会将 Netty 的默认分支更改为 main,因此对 4.1 版本所能接受的变化会更加严格,此举主要是为了保证 4.1 版本回滚的可能性下降到最低。当然,重要的错误修复也会被移植到 4.1。综上所述,开发团队目前没有计划停止对 4.1.x 的支持,而是同时支持 Netty 5 和 4.1.x。
Netty 5 迁移指南:https://github.com/netty/netty/wiki/Netty-5-Migration-Guide
下载地址:https://netty.io/downloads.html