Netty——Protobuf序列化协议


JAVA后端开发知识总结(持续更新…)


Netty——Google Protobuf序列化协议



一、编码与解码

1.1 概述

  编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时需要编码,接收数据时需要解码。codec(编解码器) 由decoder(解码器)和 encoder(编码器)组成,encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据。

  Netty本身的 ObjectDecoder 和 ObjectEncoder 可以用来实现 POJO 对象或各种业务对象的编码和解码,但是底层使用的仍是 Java 序列化技术 , 无法跨语言

1.2 Protobuf序列化协议

  Protocol Buffers是Google开发的一种数据描述语言,能够将结构化数据序列化,可用于数据存储、通信协议等方面。
  Protobuf是用来将对象序列化的,类似 JSON 序列化,它是一种高效的结构化数据存储格式,可以用于结构化数据序列化,支持跨平台、跨语言。它很适合做数据存储或RPC(远程过程调用)数据交换格式

  Protocol Buffers是二进制格式,而JSON和XML是文本格式。相对于XML,Protocol Buffers体积小(消息大小只需要XML的1/10 ~ 1/3)、速度快(解析速度比XML快20 ~ 100倍)。

步骤

  • 在.proto文件中定义好实体及它们的属性;

  • 再编译成java对象进行使用。

  • CMD界面使用–cpp_out、–java_out、–python_out命令选项可以生成C++、Java、Python代码。

在这里插入图片描述

1.2.1 Protobuf 格式

  • Maven
<dependencies>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.6.1</version>
        <
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值