一个高性能、开源的通用RPC框架
官网
Github
DOC
gRPC是CNCF孵化项目。
gRPC是一个现代的、开源的、高性能的远程过程调用(RPC)框架,可以在任何地方运行。gRPC使客户端和服务器应用程序能够透明地通信,并简化了连接系统的构建。
Github
为了最大化可用性,gRPC支持向用户选择的语言(如果有的话)添加依赖项的标准方法。在大多数语言中,gRPC
运行时以包的形式出现在用户的语言包管理器中。
有关如何在项目中使用特定于语言的gRPC运行时的说明,请参考这些文档:
C++:按照src/cpp
目录下的说明操作
Go:go get google.golang.org/grpc
Java:使用Maven中央存储库中的JARs
Node: npm install @grpc/grpc-js
Python:pip install grpcio
Ruby: gem install grpc
WebJS: 遵循grpc-web说明
每种语言的快速入门指南和教程可以在grpc.io网站的文档部分找到。代码示例可以在examples目录中找到。
预编译的gRPC主分支HEAD的前沿包构建每天上传到packages.grpc.io。
参见gRPC概念
这个存储库包含在共享C核心库src/core
之上以多种语言实现的gRPC
库的源代码。
不同语言的库可能处于不同的发展状态。我们正在寻求对所有这些库的贡献:
Language | Source |
---|---|
Shared C [core library] | src/core |
C++ | src/cpp |
Ruby | src/ruby |
Python | src/python |
PHP | src/php |
C# (core library based) | src/csharp |
Objective-C | src/objective-c |
Language | Source repo |
---|---|
Java | grpc-java |
Kotlin | grpc-kotlin |
Go | grpc-go |
NodeJS | grpc-node |
WebJS | grpc-web |
Dart | grpc-dart |
.NET (pure C# impl.) | grpc-dotnet |
Swift | grpc-swift |
gRPC
是一个现代的开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,支持负载平衡、跟踪、健康检查和身份验证。它也适用于分布式计算的最后一英里,将设备、移动应用程序和浏览器连接到后端服务。
使用Protocol Buffers(一种强大的二进制序列化工具集和语言)定义您的服务
使用单行代码安装运行时和开发环境,还可以使用框架扩展到每秒数百万个 RPCs
自动为您的服务生成各种语言和平台的惯用客户端和服务器存根
双向流和完全集成的基于HTTP/2传输的可插拔认证
使用Go模块支持(Go 1.11+),只需添加以下导入
import "google.golang.org/grpc"
然后go [build|run|test]
将自动获取必要的依赖项。
否则,执行如下命令安装grpc-go包。
go get -u google.golang.org/grpc
默认记录器由环境变量控制。像这样打开所有东西:
$ export GRPC_GO_LOG_VERBOSITY_LEVEL=99
$ export GRPC_GO_LOG_SEVERITY_LEVEL=info