美文网首页
grpc学习

grpc学习

作者: 昵称违规 | 来源:发表于2021-05-25 17:22 被阅读0次

一、简介

gRPC 是一个高性能、通用的开源 RPC 框架,其由 Google 主要面向移动应用开发并基于 HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言,目前提供 C、Java 和 Go 语言版本。

二、gRPC 是什么

  在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。

  gRPC 客户端和服务端可以在多种环境中运行和交互 - 从 google 内部的服务器到你自己的笔记本,并且可以用任何 gRPC 支持的语言来编写。所以,你可以很容易地用 Java 创建一个 gRPC 服务端,用 Go、Python、Ruby 来创建客户端。此外,Google 最新 API 将有 gRPC 版本的接口,使你很容易地将 Google 的功能集成到你的应用里。

三、gRPC 优缺点

gRPC的优势:

高效的内部进程沟通(inter-process communication)

简单、优雅的服务接口和框架定义

强类型,支持多种语言,便于约定服务和消息体

支持双向流

gRPC的缺点:

可能不适合面向外部服务的场景

gRPC 服务协议驱动、强类型的特征可能会限制对外服务的灵活性,同时会削弱使用者的控制能力(The contract-driven, strongly typed nature of gRPC services may hinder the flexibility of the services that you expose to the external parties, and consumers get far less control)

当有大量的服务定义被修改时,需要重新生成客户端和服务端的代码

gRPC 中,所有的请求都是 HTTP POST 请求,需要在content-type里加上application/grpc前缀;待调用的远程方法作为一个单独的 HTTP 头部发送

proto文件进行参数校验比较麻烦

四、gRPC 、Dubbo、SpringCloud对比

dubbo和springcloud有相对完成整的微服务框架,如注册中心、网关、配置中心、链路监控等,而grpc网关等服务需自己搭建。

springcloud使用的是http,dubbo使用的tcp协议,grpc使用的是http2 并基于ProtoBuf(Protocol Buffers) 序列化传输相对于速度更快。

相关文章

  • go gRPC基础

    sasuke.cn gRPC文档学习笔记 gRPC Basics - Go 学习目标: 定义服务 编译生成serv...

  • gRPC 基本概念

    声明 本篇文章是在学习gRPC框架的过程中翻译的官方文档,非作者原创,官方文档参考gRPC,学习gRPC过程中,有...

  • 什么是gRPC

    声明 本篇文章是在学习gRPC框架的过程中翻译的官方文档,非作者原创,官方文档参考gRPC,学习gRPC过程中,有...

  • gRPC 学习笔记

     gRPC 学习笔记,记录gprc一些基本概念.  gRPC正如其他 RPC 系统,gRPC 基于如下思想:定义一...

  • gRPC Guide

    最近项目需要用到 gRPC,网上gRPC 的资料较少,翻译了官网的 gRPC guide 文档,以供组内学习,部分...

  • 【实战分享】从选型到项目落地,漫谈 gRPC

    什么是 gRPC? gRPC 的几种常见模式 在学习 gRPC 的时候,相信大家对于它的四种模式都有了解,我们来简...

  • gRPC学习

    参考文章 《gRPC Design and Implementation》

  • grpc学习

    grpc介绍 源于Google的内部RPC框架, 使用protobuf进行编码解码。 grpc的一些特点: 数据空...

  • grpc学习

    一、简介 gRPC 是一个高性能、通用的开源 RPC 框架,其由 Google 主要面向移动应用开发并基于 HTT...

  • go语言快速使用gRPC

    sasuke.cngRPC官网文档学习笔记 快速开始 先决条件 gRPC需要1.6+版本的go。 安装gRPC 安...

网友评论

      本文标题:grpc学习

      本文链接:https://www.haomeiwen.com/subject/shdcsltx.html