Protobuf的使用,结合idea
安装Protobuf并配置idea
Protocol Buffers(又名 protobuf)是 Google 的中立语言, 平台中立、可扩展的结构化数据序列化机制。
官网:
https://github.com/protocolbuffers/protobuf
作用就是用来进行数据传输的,比如说java对象和json的传输,当然要是从字节传输的角度,粘包自然是无稽之谈,咳咳,扯远了,netty对于这方面是有一个专门处理这方面的处理器。
接下来,我开始教程,如何使用这个:
首先打开官网:
https://github.com/protocolbuffers/protobuf/releases

根据自己的系统,把这个下载下来。
然后打开idea

把这个插件下载安装起来。
然后新建一个项目并配置以下proto:

然后点击这个

配置一下protoc.exe和选择java,基本就行了。
如何使用Protobuf
首先要了解一下Protobuf的格式:
这里有它的使用说明书:https://protobuf.dev/
这里我举个例子:
package com.netty.protocol;
option java_package = "com.netty.protocol";
option java_outer_classname = "MsgProtos";
message Msg{
uint32 id=1;
string content=2;
}
syntax格式规范为3版本。
生成的包名为com.netty.protocol
java_package这个是java的包名,基本和那个生成的包名一致就行。
java_outer_classname这个是生成的类的名字(文件名),一般来说没有要求就生成一个类
一般来说一个message对应一个类。然而多个类默认只能生成一个文件(在没有要求的情况下)
在idea里面,操作很简单的。


欧克,溜了溜了,有兴趣可以看我主页。
Protobuf的使用,结合idea的更多相关文章
- python通过protobuf实现rpc
由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc.rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行g ...
- Protobuf使用规范分享
一.Protobuf 的优点 Protobuf 有如 XML,不过它更小.更快.也更简单.它以高效的二进制方式存储,比 XML 小 3 到 10 倍,快 20 到 100 倍.你可以定义自己的数据结构 ...
- java netty socket库和自定义C#socket库利用protobuf进行通信完整实例
之前的文章讲述了socket通信的一些基本知识,已经本人自定义的C#版本的socket.和java netty 库的二次封装,但是没有真正的发表测试用例. 本文只是为了讲解利用protobuf 进行C ...
- 在Wcf中应用ProtoBuf替代默认的序列化器
Google的ProtoBuf序列化器性能的牛逼已经有目共睹了,可以把它应用到Socket通讯,队列,Wcf中,身为dotnet程序员一边期待着不久后Grpc对dotnet core的支持更期待着Wc ...
- protobuf的编译安装
github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装. github上有详细的安装说明: ...
- 编译protobuf的jar文件
1.准备工作 需要到github上下载相应的文件,地址https://github.com/google/protobuf/releases protobuf有很多不同语言的版本,因为我们需要的是ja ...
- protobuf学习(2)-相关学习资料
protobuf官方git地址 protobuf官方英文文档 (你懂的需要FQ) protobuf中文翻译文档 protobuf概述 (官方翻译 推荐阅读) protobuf入门 ...
- google protobuf安装与使用
google protobuf是一个灵活的.高效的用于序列化数据的协议.相比较XML和JSON格式,protobuf更小.更快.更便捷.google protobuf是跨语言的,并且自带了一个编译器( ...
- c# (ENUM)枚举组合类型的谷歌序列化Protobuf
c# (ENUM)枚举组合类型的谷歌序列化Protobuf,必须在序列化/反序列化时加上下面: RuntimeTypeModel.Default[typeof(Alarm)].EnumPassthru ...
- dubbox 增加google-gprc/protobuf支持
好久没写东西了,今年实在太忙,基本都在搞业务开发,晚上来补一篇,作为今年的收官博客.google-rpc 正式发布以来,受到了不少人的关注,这么知名的rpc框架,不集成到dubbox中有点说不过去. ...
随机推荐
- Vue的数据更新,页面不更新的解决办法
可能原因 更新的数据跟源数据不是同一个,即不是同一个引用 解决办法 最稳妥的办法,可通过拿到源数据取索引的方式进行数据的更新,如: 有一个源数据叫:originData 那么如果在更新时,通过this ...
- pythonapi接口怎么对接?
Python API接口对接是使用Python语言开发应用程序时,与外部API接口进行交互的一种方式.API(应用程序接口)是一种定义了程序或系统如何与另一个程序或系统进行交互的协议.通过使用Py ...
- CodeForces-1278B-A-and-B
题意 对于\(t(1\leq t\leq 100)\)个测试点,给两个数\(a\)和\(b\),作如下操作: 第一次挑一个数使其加\(1\),第二次挑一个数使其加\(2\),以此类推,最后两个数相等, ...
- web组态可视化编辑器
随着工业智能制造的发展,工业企业对设备可视化.远程运维的需求日趋强烈,传统的单机版组态软件已经不能满足越来越复杂的控制需求,那么实现web组态可视化界面成为了主要的技术路径. 行业痛点 对于软件服务商 ...
- 小米云原生文件存储平台化实践:支撑 AI 训练、大模型、容器平台多项业务
小米作为全球知名的科技巨头公司,已经在数百款产品中广泛应用了 AI 技术,这些产品包括手机.电视.智能音箱.儿童手表和翻译机等.这些 AI 应用主要都是通过小米的深度学习训练平台完成的. 在训练平台的 ...
- 8.2 BeingDebugged
BeingDebugged 是Windows系统PEB结构体中的一个成员,它是一个标志位,用于标识当前进程是否正在被调试.BeingDebugged的值为0表示当前进程未被调试,值为1表示当前进程正在 ...
- PostgreSQL学习笔记-4.基础知识:空值NULL、别名AS
NULL 值代表遗漏的未知数据. 默认地,表的列可以存放 NULL 值. 本章讲解 IS NULL 和 IS NOT NULL 操作符. 语法 当创建表时,NULL 的基本语法如下: CREATE T ...
- 基于Python语言的KNN算法
import operator import numpy as np # 鸢尾花的数据集 load_iris from sklearn.datasets import load_iris ''' 对测 ...
- 算法学习笔记(3.1): ST算法
ST表 在RMQ(区间最值)问题中,著名的ST算法就是倍增的产物.ST算法可以在 \(O(n \log n)\) 的时间复杂度能预处理后,以 \(O(1)\) 的复杂度在线回答区间 [l, r] 内的 ...
- Android下音视频对讲演示程序(声学回音消除、噪音抑制、语音活动检测、自动增益控制、自适应抖动缓冲)(2023年07月13日更新)
Android下音视频对讲演示程序 必读说明 简介 本软件根据<道德经>为核心思想而设计,实现了两个设备之间进行音视频对讲,一般可用于楼宇对讲.智能门铃对讲.企业员工对讲.智能对讲机. ...