问题标签 [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 回答
1375 浏览

sbt - SBT protobuf grpc 配置

我是 SBT 的新手,我正在尝试将 gradle protobuf/grpc 配置转换为 SBT。

我想知道 scala 社区是否在我之前做过这件事?

我试过这个插件https://github.com/sbt/sbt-protobuf,但它没有提供任何配置来启用 grpc 编译......

任何帮助表示赞赏。

0 投票
1 回答
1587 浏览

go - 如何保存 GRPC 流以供重用

我有一个 GRPC 服务器,它提供一个函数并返回一个流。我想将流保存到一个map[string]grpc.Stream- 这到目前为止有效。

我的问题是在返回流的函数完成其逻辑后流被关闭。

这就是我到目前为止所拥有的:

我已经尝试让函数在返回之前永远不要返回任何带有 a 的东西for {}(如上面代码中所述),但这没有帮助,我不认为这可能是解决方案。

有没有办法让流保持打开状态,以便稍后在运行时通过它向客户端发送数据?

0 投票
3 回答
9903 浏览

rest - gRPC 中的分页

我正在使用 gRPC 对呼叫进行分页,并试图找出执行它的选项/近似值。这是一个明智的问题吗?我可以使用哪些资源来做到这一点?

0 投票
1 回答
800 浏览

php - PubSub 和 gRPC PHP 的速度

我们正在尝试将 PubSub 作为作业队列,并从 Google Cloud 中的实例运行我们的实验。

我们目前面临的问题是在 PubSub 中建立连接和创建作业大约需要 300ms-700ms。我们正在运行 PHP,因此不幸的是,对于每个传入的请求,都需要建立到 PubSub 的新连接(至少对于面向前端的代码而言)。这是 PubSub 服务的预期速度,还是我们可能做错了什么?

另一个问题是关于 PubSub 的 gRPC,这看起来很有希望,但我似乎找不到任何文档或示例代码来开始在 PHP 环境中进行试验。我发现的唯一示例似乎适用于 AppEngine,它使用的类似乎在 AppEngine 之外不可用。

我希望在这两种情况下,我都遗漏了一些东西,我真的很想使用 PubSub。

更新:我通过在客户端设置缓存部分解决了这个问题。但是还是200ms-500ms

0 投票
6 回答
42325 浏览

grpc - 如何调试grpc调用?

我试图弄清楚为什么我的grpc调用不起作用,但我不知道如何打开调试,所以我可以看到通过 grpc 连接发送和接收的数据。

您如何打开 grpc 调用的调试?

0 投票
2 回答
1149 浏览

protocol-buffers - 启动 grpc 服务器时出现 IllegalStateException

我正在使用 grpc 进行 API 开发。

到目前为止,我能够创建和访问 API。

在“信息:服务器启动。正在侦听端口 42420”消息显示后,我突然看到此异常堆栈跟踪连续 5 秒。

我已经部署了这个项目并将服务器放在 GCE 实例上。如果有人以前遇到过,请告诉我此问题的原因和解决方案。

堆栈跟踪:

0 投票
1 回答
1990 浏览

java - Gradle 无法检测到 osdetector 插件

我在使用 gradle 的 Java GRPC 项目中使用 OpenSSL。

我阅读了文档,其中提到我们应该按照此链接中的说明进行安全设置。

我在 build.gradle 文件中包含了 osdetector 插件。

但是当我构建项目时,gradle 无法解析 osdetector 插件并抛出错误

我的gradle文件如下:

然而,仅编译依赖项正在得到解决。

我想我在这里缺少一些基本的东西。请让我知道解决方案。

更新

0 投票
1 回答
2082 浏览

java - 无法通过 SSL 从客户端连接到 grpc 服务器

在我使用 grpc 和 java 的项目中,我使用 OpenSSL 在客户端和服务器之间建立安全连接。

我能够成功启动 grpc 服务器。

这里的文档提到安全通道的客户端代码是这样的

我在客户端使用代码如下,但抛出了以下异常。

例外:

我也尝试使用以下代码:

这也给出了与上述相同的例外。我只是在这里给出了一个空文件引用。

请让我知道应该为 GoDaddy 证书使用哪种方法。

如果这是第一种方法,我错过了什么。

如果是第二种方法,我应该将哪个文件用于“roots.pem”。

更新。

0 投票
1 回答
489 浏览

c++ - 针对 Bigtable 的 gRPC C++ 客户端调用偶尔会挂起

我遇到了 gRPC C++ 客户端对谷歌云 Bigtable 进行调用的问题。这些调用偶尔会挂起,只有在设置了调用截止日期时才会返回调用。向 gRPC 团队提交了一个问题:https ://github.com/grpc/grpc/issues/6278 ,其中提供了堆栈跟踪和一条 gRPC 跟踪日志。

最常挂起的调用是ReadRows流读取调用。我也见过MutateRow几次通话挂起,但这种情况相当罕见。

gRPC 跟踪显示服务器返回了一些响应,但是该响应似乎不足以让 gRPC 客户端继续。

我确实花了相当多的时间调试代码,到目前为止在客户端没有发现明显的问题,也没有看到内存损坏。这是一个单线程应用程序,一次调用一个,客户端并发不是问题。客户端在谷歌计算引擎盒上运行,因此网络也可能不是问题。gRPC 客户端与 github 存储库主线保持同步。

任何建议,将不胜感激。如果有人有调试想法,那也很棒。到目前为止,使用 valgrind、gdb 将应用程序减少到具有可重复结果的子集并没有帮助,我无法找出问题所在。问题是随机的,偶尔会出现。

2016 年 5 月 17 日 的附加说明 有人建议重试可能有助于解决该问题。不幸的是,重试对我们来说效果不佳,因为我们必须将其转移到应用程序逻辑中。我们可以轻松地重试更新,即MutateRow通话,我们这样做,这些不是流式通话,很容易重试。但是,一旦应用程序开始对数据库查询结果进行迭代,如果失败,重试意味着应用程序需要重新发出查询并重新开始结果的迭代。这是有问题的。总是可以考虑进行更改,使我们的应用程序一次读取整个结果集,然后在应用程序级别的迭代可以在内存中完成。然后可以处理重试。但由于各种原因,例如内存占用和应用程序延迟,这是有问题的。我们希望在数据库查询结果到达后立即处理它们,而不是在所有查询结果都在内存中时处理。当呼叫挂起时,呼叫延迟也会增加超时。所以,

0 投票
1 回答
3868 浏览

go - 如何使 Go gRPC 在服务器端与标准 IO 一起工作?

我是 gRPC 的大一新生,这是我的问题。我正在尝试通过myOwnService以下服务方法编写服务以公开到 gRPC 服务中:

服务器端代码如下:

正如您在上面看到的,我不知道如何stream使用io.Readerio.Writer在我的原始服务中工作,以便HighFivegRPC 服务的调用者可以像myOwnService正常调用一样读取和写入数据。

[更新] 我当前的消息是这样的,但如果需要,您可以更改它们: