IDEA_2019.1版本中Protobuf的使用
一、Protobuf是什么
Protobuf 是 Google 发布的开源项目,全称 Google Protocol(/'prəʊtəkɒl/,协议,草案) Buffers,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC[远程过程调用 remote procedure call ] 数据交换格式 。目前很多公司 http+json ==> tcp+protobuf
参考文档 : https://developers.google.com/protocol-buffers/docs/proto 语言指南
二、为什么要使用Protobuf
1、Netty 本身的编码解码机制存在的问题
1.1 Netty 自身提供的 codec(编/解码器)
Netty 提供的编码器
StringEncoder,对字符串数据进行编码
ObjectEncoder,对 Java 对象进行编码
...
Netty 提供的解码器
StringDecoder, 对字符串数据进行解码
ObjectDecoder,对 Java 对象进行解码
...
1.2 Netty 自身的 codec存在的问题
Netty 本身自带的 ObjectDecoder 和 ObjectEncoder 可以用来实现 POJO 对象或各种业务对象的编码和解码,底层使用的仍是 Java 序列化技术 , 而Java 序列化技术本身效率就不高,存在如下问题:
1.无法跨语言
2.序列化后的体积太大,是二进制编码的 5 倍多。
3.序列化性能太低4.Protobuf 是以 message (信息)的方式来管理数据的.
5.支持跨平台、跨语言,即[客户端和服务器端可以是不同的语言编写的] (支持目前绝大多数语言,例如 C++、C#、Java、python 等)
6.高性能,高可靠性
7.使用 protobuf 编译器能自动生成代码,Protobuf 是将类的定义使用.proto 文件进行描述。说明,在idea 中编写 .proto 文件时,会自动提示是否下载 .ptotot 编写插件. 可以让语法高亮。8.然后通过 protoc.exe 编译器根据.proto 自动生成.java 文件
2、protobuf 工作示意图
三、IDEA安装Protobuf
一、.proto文件语法高亮显示需要安装Protobuf Support插件:
网上的教程:
依次点击Intellij中的“File”>"Settings>"Plugins"==>"Browse repositories",输入Protobuf,点击install:
而我的idea是2019.1版本,Plugins下面没有Browse repositories这个选项,选择磁盘安装:
先进入官方地址下载插件:protobuf插件
将插件下载到桌面(不用解压),打开idea,依次点击:
“File”>"Settings>"Plugins">"设置按钮">"install Plugin from Disk"==>找到刚刚下载的文件并且选中,之后会出现protobuf Support插件,选择重启Idea(Restart IDE),然后之前写的XXX.proto文件就会变颜色。
四、maven的方式集成插件
在pom文件中引入依赖:
__EOF__

本文链接:https://www.cnblogs.com/Courage129/p/14266738.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端