Netty整合SpringBoot并使用Protobuf进行数据传输

Netty整合SpringBoot并使用Protobuf进行数据传输

前言

本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容。Protobuf会介绍下用法,至于Netty在netty 之 telnet HelloWorld 详解中已经介绍过了,这里就不再过多细说了。

Protobuf 介绍

Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单。您可以定义数据的结构化,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言编写和读取结构化数据。

官网地址: https://developers.google.com/protocol-buffers/

使用

这里的使用就只介绍Java相关的使用。具体protobuf3的使用可以看Protobuf 语言指南(proto3) 首先我们需要在src/main文件夹下建立一个proto文件夹,然后在该文件夹新建一个user.proto文件,此文件定义我们需要传输的文件。

Netty整合SpringBoot并使用Protobuf进行数据传输

:使用grpc方式编译.proto时,会默认扫描src/main/proto文件夹下的protobuf文件。

例如我们需要定义一个用户的信息,包含的字段主要有编号、名称、年龄。 那么该protobuf文件的格式如下: :这里使用的是proto3,相关的注释我已写了,这里便不再过多讲述了。需要注意一点的是proto文件和生成的Java文件名称不能一致!

1 //proto3语法注解:如果您不这样做,protobuf编译器将假定您正在使用proto2,这必须是文件的第一个非空的非注释行。 2 syntax = "proto3"; 3 //生成的包名 4 option java_package = "com.sanshengshui.netty.protobuf"; 5 //生成的java名 6 option java_outer_classname = "UserMsg"; 7 8 message User{ 9 //ID 10 int32 id = 1; 11 //姓名 12 string name = 2; 13 //年龄 14 int32 age = 3; 15 //状态 16 int32 state = 4; 17 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjzwd.html