gRPC 是谷歌开源的一款 RPC 框架,基于 HTTP/2 协议,使用 protocol buffer 作为接口定义语言和底层数据交换格式。其最大优势在于跨语言兼容性,通过语言无关的 protobuf 定义接口,配合标准 http 协议传输,使不同语言的服务端和客户端能够无缝交互。
gRPC-java 是其在 Java 生态中的官方实现。官方仓库中提供了基础示例,本文将基于此探讨如何从零开始构建独立的 gRPC 项目,并完成远程过程调用的配置。
获取源码
可以直接从 GitHub 克隆源码,也可以先 Fork 到自己的仓库再下载。建议采用 Fork 方式,方便后续修改和跟踪。
创建 Maven 项目
使用 IntelliJ IDEA 新建一个基于 Maven 的 Java 项目,命名为 grpc-demo。
配置 Maven 依赖
在项目的 pom.xml 中添加以下配置。这里主要引入了 gRPC 的核心库以及必要的注解支持。注意版本号的匹配,确保编译环境与运行环境一致。
<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>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.19.0</grpc.version>
<protobuf.version>3.6.1</protobuf.version>
<protoc.version>3.6.1</protoc.version>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</>
io.grpc
grpc-bom
${grpc.version}
pom
import
io.grpc
grpc-netty-shaded
runtime
io.grpc
grpc-protobuf
io.grpc
grpc-stub
javax.annotation
javax.annotation-api
1.3.2

