问题标签 [grpc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
867 浏览

python-2.7 - 在python中使用带有protobuf2.6的grpc遇到远程错误

我在 python 2.7 中使用 grpc 和 protobuf 2.6.1,当我运行客户端代码时,出现以下错误:

这是我的客户端代码:

这是我的服务器端代码:

知道远程错误来自哪里吗?太感谢了!

0 投票
2 回答
723 浏览

grpc - Bigtable(来自 Go)返回“服务器关闭了流而不发送预告片”

我们正在使用 Google Cloud Bigtable,使用Go 库从 GCE 实例访问它来访问它。对于某些 ReadRow 查询,我们收到以下错误:

值得注意的是,这些是一致的。换句话说,如果我们重试相同的查询(我们在两次尝试之间等待大约 15 分钟),我们(几乎?)总是再次得到相同的错误。所以它似乎不仅仅是一个暂时的错误,而是可能与正在获取的数据有关。这是我们正在运行的特定查询:

这可能只是意味着“你试图获取太多”吗?

0 投票
1 回答
1182 浏览

javascript - 访问 grpc 流变量以在 Node 中长时间运行进程

我正在使用 Node.js 连接到使用gRPC执行长时间运行任务的服务器。

服务器在作业进行时向客户端(Node.js 应用程序)发送单向流。我需要实现一个停止按钮,并被告知关闭gRPC 流将停止正在进行的工作。

这是目前我的代码:

如您所见,我在创建作业时向客户端发送了HTTP 202响应,并且它在后台异步继续。

问题:

  1. 如何关闭流?
  2. 我如何访问lengthyOperation变量来做到这一点?
0 投票
0 回答
133 浏览

python - 如何在 Sublime Text 插件中使用 gRPC 客户端?

如何在 Sublime Text 插件中使用 gRPC 客户端?gRPC文档只讨论使用 venv,但如果我正在编写 Sublime Text 插件,那不是我想做的(对吧?)。

除了让某些东西运行之外,我将如何打包它以在任何地方运行?gRPC 不适合这种事情吗?

(我是python新手。)

0 投票
3 回答
5974 浏览

grpc - 我们如何将 gRPC 与 Flatbuffers 一起使用?

我一直在研究 Apache Thrift、ProtoBuf 和 Flatbuffers。我在链接中找到了将 gRPC 与 protobuf 一起使用的教程,但我没有找到任何文档将 gRPC 与 Flatbuffers 一起使用。有人可以指出我的相关文件吗?我在 Google 和 Stackoverflow 上检查了它。任何帮助,将不胜感激。

0 投票
1 回答
754 浏览

grpc - Google Cloud Bigtable:重复grpc错误代码13,然后突然成功

简而言之,我们有时会看到少量 Cloud Bigtable 查询重复失败(连续 10 次甚至 100 次)并出现错误rpc error: code = 13 desc = "server closed the stream without sending trailers",直到(通常)查询最终起作用。

具体来说,我们的设置如下:

我们正在 Google Compute Engine 上运行一组(<10 个)Go 服务。每个服务从一对 PULL 任务队列中租用任务。每个任务都包含一个 bigtable 行的 ID。任务处理程序执行以下查询:

如果查询失败,则任务处理程序简单地返回。由于我们租用了租用时间在 10 到 15 分钟之间的任务,稍后该任务的租用将到期,它将再次被租用,我们将重试。这些任务的最大重试次数为 1000 次,因此可以在很长一段时间内多次重试。在少数情况下,特定任务会因上述 grpc 错误而失败。该任务通常会在每次连续运行数小时或数天时失败并出现相同的错误,然后(看似出乎意料)最终成功(或任务用完重试并死亡)。

由于这通常需要很长时间,因此似乎与服务器负载无关。例如,现在在一个星期天早上,这些服务器的负载非常轻,但是当我跟踪日志时,我看到了很多这样的错误。从这个答案中,我最初认为这可能是由于试图查询大量数据,可能接近云大表支持的最大限制。但是我现在发现情况并非如此。我可以找到许多示例,其中多次失败的任务最终成功并报告仅检索到少量数据(例如<1 MB)。

我还应该在这里看什么?

编辑:通过进一步的测试,我现在知道这完全独立于机器(客户端)。ReadRow如果我在其中一台任务租赁机器上跟踪日志,等待“服务器关闭流而不发送预告片”错误,然后尝试从另一台不相关、完全未使用的机器对同一 rowId进行一次性查询,我得到重复同样的错误。

0 投票
1 回答
1163 浏览

protocol-buffers - 使用 grpc 和 protobuf(生成的客户端)通过 HTTP 2 访问 Google Cloud Pubsub

我正在尝试通过使用https://github.com/google/googleapis/blob/master/google/pubsub/v1/pubsub.proto上的服务定义来使用谷歌云 pubsub 服务

我能够生成客户端代码并拥有以下代码来获取主题:

这总是以 404 失败。网络流量(在调试日志中)似乎确认客户端正在访问错误的端点(对于发布消息请求):

我在这里做错了什么?是否支持通过 HTTP 2(使用 protobuf)的 pubsub?

0 投票
1 回答
1138 浏览

android - 从 Android SyncAdapter 调用服务方法时 gRPC 失败

我花了一些时间才发现只有当我尝试从 SyncAdapter 使用 gRPC 客户端时才会导致以下错误:

设置与官方教程使用同步适配器传输数据完全相同。

我使用与grpc-java中的示例相同的设置生成了 gRPC 代码。示例中的compile 'com.squareup.okhttp:okhttp:2.2.0'依赖项不是必需的,因为compile 'io.grpc:grpc-okhttp:0.9.0'已修改为自包含。

当从主活动调用 gRPC 服务方法时,它可以正常工作。

我怀疑grpc-okhttp必须以某种方式初始化,但不知道如何初始化。

0 投票
1 回答
1186 浏览

c++ - 使用 MSYS2/Mingw32 编译 gRPC

我在尝试使用官方安装指南建议的 mingw64 在 MSYS2 下编译 grpc 的最新分支时遇到了一个问题。

msys2 的最新 gcc 是 5.2.0,它与 grpc 的关系并不好。尽管如此,降级到 4.9.1 还是有点帮助的。通过大量手动编辑 makefile 和几个 C 头文件,我终于能够编译所有依赖项。据我所知,大多数对象都已成功编译。但是,make 不断失败,并出现错误“没有目标来制作 libgrp.dll,shared_c 需要”(可能不是完美的措辞)。我最终得到了被 Qt 识别为缺少符号的拙劣静态库。

我将非常感谢 grpc 的可靠编译指南,和/或适合 Qt 5.5 32 位的预编译二进制文件。我知道这个项目还不太成熟,但它看起来很有前途,我迫不及待地想和它一起工作!

非常感谢!

0 投票
2 回答
1579 浏览

python - 在 Ubuntu 上安装/编译 grpc 时出错

我有 protobuf 编译器版本 3.0,需要安装 grpc 和 grpc python 插件。按照教程,我添加deb http://http.debian.net/debian jessie-backports main到了我的 sources.list 文件并做了sudo apt-get update并且sudo apt-get install libgrpc-dev返回了

所以,我决定按照安装说明中提到的那样从源代码编译它并做了:

但是,在制作步骤中,我得到

在切换到 release-0_11 分支时,运行 make 结果

我不知道如何安装它。任何帮助,将不胜感激。