繁体   English   中英

在 gRPC Java 应用程序中使客户端流同步/阻塞

[英]Make client-side streaming synchronous/blocking in gRPC Java application

我想使客户端流式传输阻塞。 该协议的定义如下所示:

rpc RecordRoute(stream Point) 返回 (RouteSummary) {}

正如文档中所说,对于某些类型的流式调用,只能使用异步存根:

对服务器进行非阻塞调用的非阻塞/异步存根,其中异步返回响应。 您只能使用异步存根进行某些类型的流式调用。

那么我怎样才能使调用阻塞/同步呢? 可能吗?

阻塞存根只能用于客户端仅发送单个请求的 RPC。 对于客户端流式调用,您只能使用异步存根。 生成的阻塞存根代码不包含客户端流式传输或双向流式传输方法的 RPC 方法。

如果你想避免由于异步请求造成的过度缓冲,你可以使用CallStreamObServer API 来做手动流量控制。 使用一些外部同步,例如CountDownLatch ,异步 API 可以同步运行。 了解gRPC 的手动流控制示例是如何工作的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM