RSocket 1.1.0与rsocket-rpc 0.3.0升级后FragmentationDuplexConnection缺失问题咨询
替代FragmentationDuplexConnection的方案及配置指南
好问题!在RSocket 1.1.0和rsocket-rpc 0.3.0版本中,FragmentationDuplexConnection确实被官方移除了,它的分片/MTU控制功能已经被整合到RSocket核心的传输层实现中,并且提供了更直观的配置方式,完美适配你通过负载均衡器/代理使用WebSocket传输的场景。
具体替代方式及配置步骤
直接在WebSocket传输层配置MTU
现在不需要手动创建包装类,你可以直接通过WebSocketClientTransport(客户端)或WebSocketServerTransport(服务器)的fragment(int mtu)方法来设置MTU值。针对你的需求,传入65536即可实现65K的MTU配置。客户端配置示例:
// 创建WebSocket传输并设置65K MTU WebSocketClientTransport transport = WebSocketClientTransport.create(URI.create("ws://your-proxy-or-lb-endpoint")) .fragment(65536); // 基于配置好的传输创建RSocket客户端 RSocketClient rsocketClient = RSocketClient.create(transport);服务器端配置示例:
// 创建WebSocket服务器传输并设置65K MTU WebSocketServerTransport serverTransport = WebSocketServerTransport.create(8080) .fragment(65536); // 启动RSocket服务器 RSocketServer.create(new YourRpcHandler()) .bind(serverTransport) .block();Spring Boot Starter适配
如果你使用自定义的rsocket-rpc Spring Boot Starter,只需要在自定义RSocketClient或RSocketServer的Bean时,注入配置好MTU的Transport实例即可。这样所有的rpc调用都会自动使用这个配置了。
版本变更的核心逻辑
官方移除FragmentationDuplexConnection是为了简化架构,把分片逻辑内建到传输层实现中,避免用户手动包装连接对象,同时让MTU配置更贴近传输层的职责划分,整体使用起来更简洁直观。
内容的提问来源于stack exchange,提问作者Mavo
相关产品推荐
相关产品推荐

