手写 RPC | 记一次未 implement Serializable 导致的卡死

消息对象未实现 Serializable

问题描述

基于 Netty 实现通信,在 Client 和 Server 侧分别创建了 NettyInitializer,并在流水线中添加 ObjectEncoder / ObjectDecoder。客户端发信后无响应。

排查

能够确认客户端与服务端已连接,且 Server 侧的 NettyInitializer 正常初始化。此后无响应。检查代码发现消息对象忘记实现 Serializable,修改后重启通信正常。

Netty 的 ObjectEncoder/ObjectDecoder 基于 Java 原生序列化机制进行编解码,只支持对实现了 java.io.Serializable 的对象进行处理。

总结

排查重心放在 Server 侧一无所获。最后是消息类的问题,Netty 无法正常序列化。

posted @ 2025-10-05 02:14  Miya_Official  阅读(2)  评论(0)    收藏  举报