| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> Java知识库 -> grpc既protocol buffers 的使用 -> 正文阅读 |
|
|
[Java知识库]grpc既protocol buffers 的使用 |
前言? ?之前在写一篇关于nacos源码解析的时候,有意的回避了关于底层数据传输层的解读,本文也不会深入底层做源码分析,本文意在说明grpc和proto的使用 protocol buffers的介绍? ?protocol buffers 是一种灵活,高效,自动化机制的结构数据序列化方法 使用? ?依赖:???????????? <dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>${grpc.version}</version>
</dependency>
?其中grpc.version=1.47.0 添加java对.proto文件的编译器,需要在pom文件中添加如下插件: <build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
其中: io.grpc.version=1.17.0 protoc.version = 3.19.2 添加完如上依赖之后,可以查看一下到如下的信息:
编写.proto文件? ?本篇文章不做深入的proto语法分析,只提供简单的使用案列,部分简单注释 在src/main下创建新文件夹proto(编译器默认编译路径),然后编写.proto文件
?编写完proto文件之后,就可以使用maven的compile命令编译文件,生产.class文件,生成的class文件如下:
?grpc的使用? ? ? 服务端???????????????? ?添加实现类,编写server服务端启动代码:
? ? ? 客户端? ? ? 以上即是grpc既proto的使用demo? 创作不易,如果觉得有用,请点赞收藏!如果有问题,欢迎留言讨论! |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/29 2:52:00- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |