安装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的更多相关文章

  1. python通过protobuf实现rpc

    由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc.rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行g ...

  2. Protobuf使用规范分享

    一.Protobuf 的优点 Protobuf 有如 XML,不过它更小.更快.也更简单.它以高效的二进制方式存储,比 XML 小 3 到 10 倍,快 20 到 100 倍.你可以定义自己的数据结构 ...

  3. java netty socket库和自定义C#socket库利用protobuf进行通信完整实例

    之前的文章讲述了socket通信的一些基本知识,已经本人自定义的C#版本的socket.和java netty 库的二次封装,但是没有真正的发表测试用例. 本文只是为了讲解利用protobuf 进行C ...

  4. 在Wcf中应用ProtoBuf替代默认的序列化器

    Google的ProtoBuf序列化器性能的牛逼已经有目共睹了,可以把它应用到Socket通讯,队列,Wcf中,身为dotnet程序员一边期待着不久后Grpc对dotnet core的支持更期待着Wc ...

  5. protobuf的编译安装

    github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装. github上有详细的安装说明: ...

  6. 编译protobuf的jar文件

    1.准备工作 需要到github上下载相应的文件,地址https://github.com/google/protobuf/releases protobuf有很多不同语言的版本,因为我们需要的是ja ...

  7. protobuf学习(2)-相关学习资料

    protobuf官方git地址 protobuf官方英文文档   (你懂的需要FQ) protobuf中文翻译文档 protobuf概述          (官方翻译 推荐阅读) protobuf入门 ...

  8. google protobuf安装与使用

    google protobuf是一个灵活的.高效的用于序列化数据的协议.相比较XML和JSON格式,protobuf更小.更快.更便捷.google protobuf是跨语言的,并且自带了一个编译器( ...

  9. c# (ENUM)枚举组合类型的谷歌序列化Protobuf

    c# (ENUM)枚举组合类型的谷歌序列化Protobuf,必须在序列化/反序列化时加上下面: RuntimeTypeModel.Default[typeof(Alarm)].EnumPassthru ...

  10. dubbox 增加google-gprc/protobuf支持

    好久没写东西了,今年实在太忙,基本都在搞业务开发,晚上来补一篇,作为今年的收官博客.google-rpc 正式发布以来,受到了不少人的关注,这么知名的rpc框架,不集成到dubbox中有点说不过去. ...

随机推荐

  1. Java程序员学vue3最好的方式就是搭建后台管理模板

    前言 作为Java程序员,vue3还是有必要学的,毕竟是国内最受欢迎的前端JS框架,你现在接手的项目,前端部分几乎都会和vue沾边,尤其是中小企业. vue3作为新的大版本,相较于vue2改动还是很多 ...

  2. NAT模式LVS负载均衡集群

    NAT模式LVS负载均衡集群 负载调度器:内网 网关 ens33:192.168.1.200,外网 网关 ens36:12.0.0.10 Web节点服务器1:192.168.1.100 Web节点服务 ...

  3. mysqlbinlog输出sql

    ./mysqlbinlog -v --base64-output=DECODE-ROWS ~/Downloads/tymysql2|grep -A4 'ALTER' >~/Downloads/a ...

  4. EtherCAT转Modbus网关用Modbus Slave模拟从站配置案例

    EtherCAT转Modbus网关用Modbus Slave模拟从站配置案例 兴达易控EtherCAT到Modbus网关可以用作Modbus从站的配置.EtherCAT到Modbus网关允许Modbu ...

  5. Linux-Stream内存带宽及MLC内存延迟性能测试方法

    1.Stream内存带宽测试   Stream是业界主流的内存带宽测试程序,测试行为相对简单可控.该程序对CPU的计算能力要求很小,对CPU内存带宽压力很大.随着处理器核心数量的增大,而内存带宽并没有 ...

  6. 【RocketMQ】Dledger模式下的日志复制

    RocketMQ在开启Dledger时,使用DLedgerCommitLog,其他情况使用的是CommitLog来管理消息的存储.在Dledger模式下,消息写入时Leader节点还需要将消息转发给F ...

  7. Python网络编程——TCP套接字通信、通信循环、链接循环、UDP通信

    文章目录 基于TCP的套接字通信 加上通信循环 加上链接循环 基于UDP协议的套接字通信 基于TCP的套接字通信 以买手机的过程为例 服务端代码 import socket # 1.买手机 phone ...

  8. CefSharp自定义滚动条样式

    在WinForm/WPF中使用CefSharp混合开发时,通常需要自定义滚动条样式,以保证应用的整体风格统一.本文将给出一个简单的示例介绍如何自定义CefSharp中滚动条的样式. 基本思路 在前端开 ...

  9. HexConversion 二进制 八进制 十六进制 十进制

    public class HexConversion { // TODO Auto-generated method stub /** * TODO 进制转换. * * @param cc * htt ...

  10. Blackmail

    Blackmail Arthur Hailey The chief house officer, Ogilvie, who had declared he would appear at the Cr ...