Skip to content

Unexpected serialization id:2 received from network, please check if the peer send the right id #10286

@GreatBareBear

Description

@GreatBareBear

使用serialization="kryo"序列化配置时发生错误,消费者和生产者都部署在同一台设备上时,访问不会报错,否则,调用消费接口时就会发生异常,去掉serialization="kryo"序列化配置可以正常访问,我不知所错了,请问这是什么问题呢,谢谢!

操作系统:Windows10
Dubbo版本:3.0.9
JDK版本:JDK17

2022-07-08 10:08:00,976 [DubboServerHandler-192.168.100.249:28102-thread-14] WARN o.a.d.r.p.d.DecodeableRpcInvocation - [DUBBO] Decode rpc invocation failed: Unexpected serialization id:2 received from network, please check if the peer send the right id., dubbo version: 3.0.9, current host: 192.168.100.249
java.io.IOException: Unexpected serialization id:2 received from network, please check if the peer send the right id.
at org.apache.dubbo.remoting.transport.CodecSupport.checkSerialization(CodecSupport.java:178)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:137)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:92)
at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:57)
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:44)
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41)
at java.base/java.lang.Thread.run(Thread.java:833)

Consumer配置:
<dubbo:application name="${SERVER.NAME}_S${SERVER.ID}"/>
<dubbo:registry cluster="failover" client="curator" protocol="zookeeper" address="${ZOOKEEPER.ADDRESS}" username="${ZOOKEEPER.USERNAME}" password="${ZOOKEEPER.PASSWORD}">
<dubbo:parameter key="qos.enable" value="true"/>
<dubbo:parameter key="qos.port" value="${SERVER.PORT.QOS}"/>
</dubbo:registry>
<dubbo:consumer check="true"/>
<dubbo:reference id="rpcService" interface="com.xxx.rpc.dubbo.api.IRpcService"/>

Provider配置:
<dubbo:application name="${SERVER.NAME}_S${SERVER.ID}"/>
<dubbo:registry cluster="failover" client="curator" protocol="zookeeper" address="${ZOOKEEPER.ADDRESS}" username="${ZOOKEEPER.USERNAME}" password="${ZOOKEEPER.PASSWORD}">
<dubbo:parameter key="qos.enable" value="true"/>
<dubbo:parameter key="qos.port" value="${SERVER.PORT.QOS}"/>
</dubbo:registry>
<dubbo:protocol name="dubbo" port="${SERVER.PORT.DUBBO}" threads="100" serialization="kryo" optimizer="com.xxx.rpc.dubbo.kryo.SerializationOptimizerImpl"/>
<dubbo:provider server="netty" client="netty" cluster="failover" loadbalance="random" timeout="10000" retries="2"/>

<dubbo:service interface="com.xxx.rpc.dubbo.api.IRpcService" ref="rpcService"/>

消费者和生产者在同一台设备上时,使用serialization="kryo"序列化配置一切正常;否则,使用serialization="kryo"序列化配置就会发生异常。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions