代码之家  ›  专栏  ›  技术社区  ›  Michael Kohne

有了gRPC,我可以在一个连接上进行多个RPC调用吗?

  •  0
  • Michael Kohne  · 技术社区  · 4 年前

    我在通过单个连接操作多个RPC调用时遇到问题。服务器和客户端都使用完成队列异步操作。

    我启动了一个流媒体呼叫(getData),它每秒发送一个回复,持续10秒。我等了几秒钟,然后尝试启动getVersion调用(一元调用),直到getData调用完成,它才会返回。对服务器的检查表明,在getData完成之前,getVersion调用从未命中服务器。

    如果我试图在第一个getData运行时启动多个调用,那么一旦第一个getData完成,它们就会全部运行。事实上,它们都是并行运行的——例如,如果我启动多个getData调用,我可以看到在第一个(阻塞的)getData完成后,它们都在并行运行。

    这就像你可以随心所欲地排队,但一旦有事情发生,你就无法在该频道上启动新的呼叫?

    这是应该做的吗?这似乎不是正确的行为,但我使用gRPC的经验有些有限。

    0 回复  |  直到 4 年前
        1
  •  0
  •   Michael Kohne    4 年前

    问题是我在等待下一次发送数据时出现了一个错误。我挡住了不该做的事情。

    推荐文章