gRPC使用初探

本文介绍了如何使用gRPC进行远程过程调用。首先讲解了gRPC的基本概念,包括其基于HTTP/2和Protocol Buffer的特点。接着,详细描述了从下载gRPC源码到创建新项目的步骤,包括配置pom文件,编辑proto文件,编译生成Java类,以及编写server和client代码。最后,测试并总结了gRPC的优缺点,如跨语言支持和http2传输,但也指出其在服务治理方面的不足。
摘要由CSDN通过智能技术生成

gRPC是谷歌开源的一款RPC框架,基于HTTP/2协议,使用protocol buffer作为接口定义语言(Interface Definition Language)和底层数据交换格式。gRPC最大的优点是能跨语言,因为使用和语言无关的protobuf来定义接口,并且使用标准的http协议来进行传输,能使不同语言的服务端和客户端互相兼容。

gRPC-java的github地址是https://github.com/grpc/grpc-java。它是gRPC的java语言实现。在它的源代码中已经包含了一个example,里面有最简单的gRPC作为rpc框架的demo。本文是基于它,探讨单独建立一个项目时,如何通过gRPC进行远程过程调用。

一.下载gRPC源码

可以直接下载github上的源码,也可以先fork到自己的仓库,再从自己的仓库下载。推荐第二种。

二.通过Intellij新建一个基于maven的项目grpc-demo

三.pom文件中加入如下内容:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <grpc.version>1.19.0</grpc.version><!-- CURRENT_GRPC_VERSION -->
        <protobuf.version>3.6.1</protobuf.version>
        <protoc.version>3.6.1</protoc.version>
        <!-- required for jdk9 -->
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-bom</artifactId>
                <version>${grpc.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-netty-shaded</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值