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??????????????????????????????????????????????????????????????????????????????????????????????????

Reply via email to