为了为我的 GRPC 服务器/客户端设置提供更好的调试信息,我正在尝试寻找一个 APIgrpc.server
这使我能够检查哪些客户端连接到服务器。
我发现的最有希望的问题是问题,它给出了如何在 Java GRPC 中执行此操作的起点 https://stackoverflow.com/a/41515454/1333978。但是,Python GRPC 实现中不存在 Java API。
到目前为止,我使用以下方法跟踪独特的同行context.peer()
方法在一个grpc.ServicerContext
。如果对等方有一段时间没有发送请求(我将超时设置为 2 秒),我认为客户端已断开连接。
我已经开始查看 python-grpc 源代码,但没有取得任何进展。
如果有人知道我可以使用 python 中的类似 API,那将不胜感激!即使是内部 API 也足以满足这些调试需求。
我找到了一些有关channelz的更多文档和示例,其他人一直在建议它,它看起来就像你想要的。
这是一个拉取请求,给出了使用 Channelz 的示例 https://github.com/grpc/grpc/pull/19310/files。它仅使用 GetServer Channelz API,因此您必须对其进行调整。
这是一个使用channelz的单元测试 https://github.com/lidizheng/grpc/blob/master/src/python/grpcio_tests/tests/channelz/_channelz_servicer_test.py,
它测试可能与 GetTopChannels API 相关的 API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)