【问题标题】:How to log client connection to server for gRPC?如何为 gRPC 记录客户端与服务器的连接?
【发布时间】:2016-11-11 07:51:58
【问题描述】:

如何为 gRPC 记录客户端与服务器的连接?

当客户端连接时,我应该能够获取一些基本信息,例如IP,版本并记录它

来自 192.168.1.1 AppName 的 DATETIME 连接

gRPC / Protobuf interface versioning相关

【问题讨论】:

    标签: java grpc grpc-java


    【解决方案1】:

    今天,IP 地址和版本在每个 RPC 的基础上可用,但在客户端连接时不可用。您可以使用serverCall.attributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR) 获取IP 地址,版本包含在User-Agent 元数据中。

    Issue 2312 (v1.1) 将添加一种机制来通知新连接。它可以访问客户端的 IP 地址,但不知道客户端版本。由于代理等原因,客户端版本仅在每个 RPC 的基础上知道。

    【讨论】:

    • 什么是“基于每个 RPC”?它是在服务器上的 rpc 调用内部吗?
    • 当服务一个特定的 RPC 时,服务器可以检测到客户端的版本。但是在建立连接时版本是未知的,一个连接可以包含来自多个不同客户端的请求(从而有多个不同的版本)。
    • "一个连接可以包含来自多个不同客户端的请求"我非常想念这个基本的东西。你能指出确切的文档页面吗?
    • 它实际上不在文档中,因为它不是 gRPC 混合客户端,而且 gRPC 目前没有区分重要的功能。客户端的混合来自像 nghttpx 这样的反向代理,这在服务 HTTP 时很常见。
    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2020-10-18
    • 2015-11-22
    • 1970-01-01
    • 2016-10-04
    • 2017-02-11
    • 2019-07-20
    相关资源
    最近更新 更多