一、 简介
gRPC的定义:
- 一个高性能、通用的开源RPC框架
- 主要面向移动应用开发: gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。
- 基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发
- 支持众多开发语言

二、 简单rpc调用
主要流程:
- 创建maven项目
- 添加grpc依赖,protobuf依赖和插件
- 通过.proto文件定义服务
- 通过protocol buffer compiler插件生成客户端和服务端
- 通过grpc API生成客户端和服务端代码
1. 创建maven项目
添加pom依赖, 包含依赖包和生成基础类的插件。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>vip.sunjin</groupId>
<artifactId>GrpcServer</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<grpc.version>1.36.1</grpc.version>
<protobuf.version>3.15.6</protobuf.version>
</properties>
<dependencies>
<!-- protobuf -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf.version}</version>
</dependency>
<!-- GRPC -->
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
</dependency>
<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>
</dependencies>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.6.2</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.12.0:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.36.0:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>

本文介绍了gRPC的基础知识,包括其作为高性能RPC框架的角色,以及如何通过protobuf定义服务并生成客户端和服务端代码。接着,详细展示了如何创建简单的RPC调用,包括服务端和客户端的实现。此外,还探讨了gRPC的流式调用,包括服务端流、客户端流和双向流的使用场景及其实现方式。
最低0.47元/天 解锁文章
471

被折叠的 条评论
为什么被折叠?



