美文网首页
dubbo序列化

dubbo序列化

作者: xhrg | 来源:发表于2019-01-03 14:29 被阅读0次

    dubbo在做rpc的时候,会做两台主机的通讯,需要通讯则需要传输字节数据。所以就需要用到序列化。

    netty做通讯

    dubbo用netty做通讯的时候,启动类在。NettyClient.java中的doOpen方法中,里面能看到Netty的相关类,比如说bootstrap,当然还有如下代码

    bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
                public ChannelPipeline getPipeline() {
                    NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyClient.this);
                    ChannelPipeline pipeline = Channels.pipeline();
                    pipeline.addLast("decoder", adapter.getDecoder());
                    pipeline.addLast("encoder", adapter.getEncoder());
                    pipeline.addLast("handler", nettyHandler);
                    return pipeline;
                }
            });
    

    然后去看NettyCodecAdapter 类最后进入ExchangeCodec类的encodeRequest方法,如下:

     protected void encodeRequest(Channel channel, ChannelBuffer buffer, Request req) throws IOException {
            Serialization serialization = getSerialization(channel);
            // header.
            byte[] header = new byte[HEADER_LENGTH];
    

    是的,就是Serialization接口,默认是Hessian2Serialization序列化接口。

    Serialization接口

    该接口有多个实现类,分别如下:


    cccc.png

    相关文章

      网友评论

          本文标题:dubbo序列化

          本文链接:https://www.haomeiwen.com/subject/qgmfrqtx.html