美文网首页
gPRC基本介绍

gPRC基本介绍

作者: 木木与呆呆 | 来源:发表于2020-10-26 15:02 被阅读0次

1.说明

gRPC英文全名为Google Remote Procedure Call,
即Google远程过程调用,
是Google发布的一个高性能、通用的开源RPC框架。

2.gRPC定义

gRPC是一个现代的开源高性能RPC框架,
可以在任何环境中运行。
它可以高效地连接数据中心内和跨数据中心的服务,
支持可插拔的负载平衡、跟踪、运行状况检查和身份验证。
它也适用于分布式计算的最后一英里连接设备,
移动应用程序和浏览器后端服务。

gRPC提供了一种简单的方法来精确地定义服务,
使用Protocol Buffers定义服务,
为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。
基于HTTP/2传输层标准协议设计的,
可以设置为同步或者异步通讯。

gRPC提供了支持多种编程语言的、
对网络设备进行配置和管理的方法。
通信双方可以基于该软件框架进行二次开发。

3.为什么使用gRPC

我们的例子是一个简单的路由映射的应用,
它允许客户端获取路由特性的信息,
生成路由的总结,
以及交互路由信息,
如服务器和其他客户端的流量更新。

有了gRPC,
我们可以一次性的在一个.proto文件中定义服务,
并使用任何支持它的语言去实现客户端和服务器,
反过来,它们可以在各种环境中,
从Google的服务器到你自己的平板电脑,
gRPC帮你解决了不同语言及环境间通信的复杂性。
使用Protocol Buffers还能获得其他好处,
包括高效的序列化,
简单的IDL以及容易进行接口更新。

3.1.简单的服务定义

使用Protocol Buffers定义服务,
Protocol Buffers是一种强大的二进制序列化工具集和语言。

3.2.快速启动并扩大规模

使用单机安装运行时和开发环境,并使用框架扩展到每秒数百万个rpc。

3.3.跨语言和平台工作

以各种语言和平台为你的服务自动生成惯用的客户端和服务器存根。

3.4.双向流和集成认证

双向流和完全集成了基于HTTP/2的传输的可插拔身份验证。

4.协议栈

gRPC协议栈分层模型:

分层 说明
消息内容层 业务模块的通信双方需要了解彼此的数据模型,才能正确处理数据
Protocol Buffers编码层 gRPC通过Protocol Buffers编码格式承载数据
gRPC层 远程过程调用,定义了远程过程调用的协议交互格式
HTTP层 gRPC承载在HTTP/2协议上
TCP层 TCP连接提供面向连接的、可靠的数据链路

5.网络架构

gRPC网络采用客户端/服务器模型,
使用HTTP/2协议传输报文:


gRPC网络的工作机制:

  1. 服务器通过监听指定服务端口来等待客户端的连接请求。
  2. 用户通过执行客户端程序登录到服务器。
  3. 客户端调用.proto文件提供的gRPC方法发送请求消息。
  4. 服务器回复应答消息。

服务器和客户端可以是任意语言编写的,
不需要保持一致,
服务端可以是C++编写的,
客户端可以是Java编写的,
通信双方只要支持gRPC,
不关心具体使用的编程语言。

6.支持开发语言

由于gRPC提供使用Protocol Buffers定义服务,
Protobuf3是类似json,xml的数据交换协议,
但是它比它们传输的数据更小,传输的速度更快;
跨语言交互,支持大部分主流编程语言:

C++
C#/.NET
Objective-C
Dart
Go
Java
Android Java
Kotlin/JVM
Node.js
Ruby
Web
PHP
Python

还有更多支持语言在开发中。

7.参考文章

Supported languages and platforms
gRPC创建Java RPC服务
ProtoBuf3语法指南(Protocol Buffers)_上
ProtoBuf3语法指南(Protocol Buffers)_下

相关文章

  • gPRC基本介绍

    1.说明 gRPC英文全名为Google Remote Procedure Call,即Google远程过程调用,...

  • gRPC golang开发简介

    主要基于官网介绍的文档总结而来。 需要先了解 protocol buffers 为什么使用gRPC 通过gPRC,...

  • gRPC 学习笔记

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

  • python grpc搭构服务

    阅读本文前需要对gprc、protobuf有些基本的了解。本文主要从proto文件的编写、proto文件生成py文...

  • gPRC 优势

    gPRC 的一个很明显的优势是它使用了二进制编码,所以它比 JSON/HTTP 更快。虽然说速度越快越好,但我们也...

  • gRPC

    gPRC gPRCDocumentation grpc - A high performance, open so...

  • GPRC5A和IMUP作为PAAD发展的独立预后指标,可能成为新

    IMUP and GPRC5A: two newly identified risk score indicato...

  • 快速开始使用grpc(golang版)

    开始前准备 安装gprc go get -u google.golang.org/grpc 安装protocol ...

  • 基本介绍

    这里是基本介绍

  • 基本介绍

    msf是一个渗透测试框架 框架的特点:细分成各种模块;便与更新和修改框架里的内容。 metasploit有4个版本...

网友评论

      本文标题:gPRC基本介绍

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