gPRC基本介绍
Posted 张驰Terry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gPRC基本介绍相关的知识,希望对你有一定的参考价值。
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协议栈分层模型:
5.网络架构
gRPC网络采用客户端/服务器模型,使用HTTP/2协议传输报文:
gRPC网络的工作机制:
- 服务器通过监听指定服务端口来等待客户端的连接请求。
- 用户通过执行客户端程序登录到服务器。
- 客户端调用.proto文件提供的gRPC方法发送请求消息。
- 服务器回复应答消息。
服务器和客户端可以是任意语言编写的,不需要保持一致,服务端可以是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
以上是关于gPRC基本介绍的主要内容,如果未能解决你的问题,请参考以下文章