美文网首页
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