【问题标题】:gRPC Channel Stay Open in C#gRPC 通道在 C# 中保持打开状态
【发布时间】:2018-01-12 19:45:54
【问题描述】:

I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1802: grpc_call_start_batch(call=05BEFFD8, ops=05EFED58, nops=6, tag=05BC64E0, reserved=00000000) I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1445: ops[0]: SEND_INITIAL_METADATA(nil) I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1445: ops[1]: SEND_MESSAGE ptr=05BDAFD0 I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1445: ops[2]: SEND_CLOSE_FROM_CLIENT I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1445: ops[3]: RECV_INITIAL_METADATA ptr=05BC64FC I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1445: ops[4]: RECV_MESSAGE ptr=05BC6508 I0804 13:52:46.505722 0 C:\jenkins\workspace\gRPC_build_artifacts\platform\windows\workspace_csharp_ext_windows_x86\src\core\lib\surface\call.c:1445: ops[5]: RECV_STATUS_ON_CLIENT metadata=05BC650C status=05BC6518 details=05BC651C

当我认为 TCP 连接保持打开状态时,我很困惑为什么 gRPC 在调用之间记录一条消息 SEND_CLOSE_FROM_CLIENT。

基本上我只有一个带有构造函数的随机类,它打开到 gRPC 服务器的客户端通道。在此类上调用的方法中,有一个循环,其中每次迭代都会调用一个 RPC 方法。但是,它很慢,我认为这是因为它每次尝试进行 RPC 调用时都会创建连接。

如何保持连接打开?这是双工流式传输的情况吗?

【问题讨论】:

    标签: grpc


    【解决方案1】:

    SEND_CLOSE_FROM_CLIENT 是由 gRPC C 核心库定义的原语,在 HTTP/2 术语中表示“半关闭”(它通知客户端已在流式 RPC 中完成发送请求 - 每个 RPC 与 HTTP/1:1 对应2 流;一元调用只是流调用的特例)。

    SEND_CLOSE_FROM_CLIENT 与关闭 TCP 连接无关(我认为您在没有先阅读有线协议和 HTTP2 的情况下得出结论太快了 https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多