问题标签 [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.
sbt - SBT protobuf grpc 配置
我是 SBT 的新手,我正在尝试将 gradle protobuf/grpc 配置转换为 SBT。
我想知道 scala 社区是否在我之前做过这件事?
我试过这个插件https://github.com/sbt/sbt-protobuf,但它没有提供任何配置来启用 grpc 编译......
任何帮助表示赞赏。
go - 如何保存 GRPC 流以供重用
我有一个 GRPC 服务器,它提供一个函数并返回一个流。我想将流保存到一个map[string]grpc.Stream
- 这到目前为止有效。
我的问题是在返回流的函数完成其逻辑后流被关闭。
这就是我到目前为止所拥有的:
我已经尝试让函数在返回之前永远不要返回任何带有 a 的东西for {}
(如上面代码中所述),但这没有帮助,我不认为这可能是解决方案。
有没有办法让流保持打开状态,以便稍后在运行时通过它向客户端发送数据?
rest - gRPC 中的分页
我正在使用 gRPC 对呼叫进行分页,并试图找出执行它的选项/近似值。这是一个明智的问题吗?我可以使用哪些资源来做到这一点?
php - PubSub 和 gRPC PHP 的速度
我们正在尝试将 PubSub 作为作业队列,并从 Google Cloud 中的实例运行我们的实验。
我们目前面临的问题是在 PubSub 中建立连接和创建作业大约需要 300ms-700ms。我们正在运行 PHP,因此不幸的是,对于每个传入的请求,都需要建立到 PubSub 的新连接(至少对于面向前端的代码而言)。这是 PubSub 服务的预期速度,还是我们可能做错了什么?
另一个问题是关于 PubSub 的 gRPC,这看起来很有希望,但我似乎找不到任何文档或示例代码来开始在 PHP 环境中进行试验。我发现的唯一示例似乎适用于 AppEngine,它使用的类似乎在 AppEngine 之外不可用。
我希望在这两种情况下,我都遗漏了一些东西,我真的很想使用 PubSub。
更新:我通过在客户端设置缓存部分解决了这个问题。但是还是200ms-500ms
grpc - 如何调试grpc调用?
我试图弄清楚为什么我的grpc调用不起作用,但我不知道如何打开调试,所以我可以看到通过 grpc 连接发送和接收的数据。
您如何打开 grpc 调用的调试?
protocol-buffers - 启动 grpc 服务器时出现 IllegalStateException
我正在使用 grpc 进行 API 开发。
到目前为止,我能够创建和访问 API。
在“信息:服务器启动。正在侦听端口 42420”消息显示后,我突然看到此异常堆栈跟踪连续 5 秒。
我已经部署了这个项目并将服务器放在 GCE 实例上。如果有人以前遇到过,请告诉我此问题的原因和解决方案。
堆栈跟踪:
java - 无法通过 SSL 从客户端连接到 grpc 服务器
在我使用 grpc 和 java 的项目中,我使用 OpenSSL 在客户端和服务器之间建立安全连接。
我能够成功启动 grpc 服务器。
这里的文档提到安全通道的客户端代码是这样的
我在客户端使用代码如下,但抛出了以下异常。
例外:
我也尝试使用以下代码:
这也给出了与上述相同的例外。我只是在这里给出了一个空文件引用。
请让我知道应该为 GoDaddy 证书使用哪种方法。
如果这是第一种方法,我错过了什么。
如果是第二种方法,我应该将哪个文件用于“roots.pem”。
更新。
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
通话,我们这样做,这些不是流式通话,很容易重试。但是,一旦应用程序开始对数据库查询结果进行迭代,如果失败,重试意味着应用程序需要重新发出查询并重新开始结果的迭代。这是有问题的。总是可以考虑进行更改,使我们的应用程序一次读取整个结果集,然后在应用程序级别的迭代可以在内存中完成。然后可以处理重试。但由于各种原因,例如内存占用和应用程序延迟,这是有问题的。我们希望在数据库查询结果到达后立即处理它们,而不是在所有查询结果都在内存中时处理。当呼叫挂起时,呼叫延迟也会增加超时。所以,
go - 如何使 Go gRPC 在服务器端与标准 IO 一起工作?
我是 gRPC 的大一新生,这是我的问题。我正在尝试通过myOwnService
以下服务方法编写服务以公开到 gRPC 服务中:
服务器端代码如下:
正如您在上面看到的,我不知道如何stream
使用io.Reader
和io.Writer
在我的原始服务中工作,以便HighFive
gRPC 服务的调用者可以像myOwnService
正常调用一样读取和写入数据。
[更新] 我当前的消息是这样的,但如果需要,您可以更改它们: