gRPC 基础(一)
创始人
2024-05-21 00:27:31
0

一个高性能、开源的通用RPC框架
官网

Github

DOC

gRPC是CNCF孵化项目。

gRPC是一个现代的、开源的、高性能的远程过程调用(RPC)框架,可以在任何地方运行。gRPC使客户端和服务器应用程序能够透明地通信,并简化了连接系统的构建。

一、开始使用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。

1.1 概念

参见gRPC概念

1.2 关于此存储库

这个存储库包含在共享C核心库src/core之上以多种语言实现的gRPC库的源代码。

不同语言的库可能处于不同的发展状态。我们正在寻求对所有这些库的贡献:

LanguageSource
Shared C [core library]src/core
C++src/cpp
Rubysrc/ruby
Pythonsrc/python
PHPsrc/php
C# (core library based)src/csharp
Objective-Csrc/objective-c
LanguageSource repo
Javagrpc-java
Kotlingrpc-kotlin
Gogrpc-go
NodeJSgrpc-node
WebJSgrpc-web
Dartgrpc-dart
.NET (pure C# impl.)grpc-dotnet
Swiftgrpc-swift

1.3 Why gRPC?

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

简单的服务定义

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

快速开始并按比例调节

使用单行代码安装运行时和开发环境,还可以使用框架扩展到每秒数百万个 RPCs

适用于多种语言和平台

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

双向流和集成认证

双向流和完全集成的基于HTTP/2传输的可插拔认证

1.4 安装

先决条件

  • Go:三个最新主要版本中的任意一个。

使用Go模块支持(Go 1.11+),只需添加以下导入

import "google.golang.org/grpc"

然后go [build|run|test]将自动获取必要的依赖项。

否则,执行如下命令安装grpc-go包。

go get -u google.golang.org/grpc

Learn more

  • Go gRPC文档,其中包括快速入门和API参考等资源
  • 来自此存储库的低阶技术文档
  • Examples

如何打开日志

默认记录器由环境变量控制。像这样打开所有东西:

$ export GRPC_GO_LOG_VERBOSITY_LEVEL=99
$ export GRPC_GO_LOG_SEVERITY_LEVEL=info

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...