Thank you for your reply. At least, the heartbeat packet serial ID does not conflict with the logic packet serial ID. What my suggestion is the logic packet should filter the serial ID including [1, 3, 4, 5, 6, 7] while the heartbeat packet should not filter the serial ID array [1, 3, 4, 5, 6, 7]. Because the serial ID array [1, 3, 4, 5, 6, 7] is logic instance serialization ID while it can not be the the heartbeat instance serialization ID at the same time.
For example, if the heartbeat packet serialization ID is 8, the dubbo heartbeat handle function just need to filter 8. It need not care about [1, 3, 4, 5, 6, 7]. ------------------ ???????? ------------------ ??????: "Ian Luo"<[email protected]>; ????????: 2018??6??15??(??????) ????2:05 ??????: "dev"<[email protected]>; ????: Re: ?????????????????????????????? header ?????? serialID The original design allows heartbeat packet to have data included, though the current implementation is in fact an empty packet. You can take a look at com.alibaba.dubbo.remoting.exchange.Response#HEARTBEAT_EVENT, which is set to null right now. If in the future a valid data is required in heartbeat packet, then the current logic for serialID will be necessary. I'd like to listen to others' comments before we decide either to ignore the check or keep the current design. -Ian. On Thu, Jun 14, 2018 at 9:44 PM ???????????? <[email protected]> wrote: > Dr All: > ?????????? dubbo ??????????hessian2????go?????????????????????????? > https://github.com/alexstocks/go-practice/blob/master/hessian/main.go > > > ?????????????????????????????????????????? > > > ????????????????????serialID??0????????????????31?????? serialID ???? > [1, 3, 4, 5, 6, 7] > ?????????????????????????? > > > 2018-06-14 14:50:04,598 [New I/O server worker #1-1] WARN > alibaba.dubbo.rpc.protocol.dubbo.DubboCodec (DubboCodec.java:140) - > [DUBBO] Decode request failed: Flag error, expect > OBJECT_NULL|OBJECT_DUMMY|OBJECT_DESC|OBJECT_DESC_ID, get 78, dubbo version: > 2.5.4, current host: 127.0.0.1 > java.io.IOException: Flag error, expect > OBJECT_NULL|OBJECT_DUMMY|OBJECT_DESC|OBJECT_DESC_ID, get 78 > at > com.alibaba.dubbo.common.serialize.support.dubbo.GenericObjectInput.readObject(GenericObjectInput.java:79) > at > com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decodeHeartbeatData(ExchangeCodec.java:381) > at > com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:121) > at > com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:118) > at > com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:79) > at > com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:46) > at > com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:134) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) > at > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) > at > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) > at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349) > at > org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 2018-06-14 14:50:05,599 [New I/O server worker #1-1] WARN > com.alibaba.dubbo.remoting.transport.AbstractServer > (AbstractServer.java:199) - [DUBBO] All clients has discontected from / > 127.0.0.1:20000. You can graceful shutdown now., dubbo version: 2.5.4, > current host: 127.0.0.1 > > > > ?????? dubbo commiter ?????????????????? ID ????????????????ID???? > https://github.com/apache/incubator-dubbo/blob/2.5.x/dubbo-common/src/main/java/com/alibaba/dubbo/common/serialize/support/json/FastJsonSerialization.java > ?? > > > ???????????????????????? okay > ?????????????????????????????????????????????????????????????????? header > ?????? > serialID?????????????????? > > > > > ????????????????????????????????????serialID??????????????????????????????????????????????????????????????????????????????????????????????????
