问题标签 [grpc-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
429 浏览

python - 使用 FieldMask 时,HTTP PATCH 应如何传达资源属性的删除

TL,博士使用FieldMask时,HTTP PATCH 应如何传达资源属性的删除?

Google用于实现标准方法的API 设计指南指出,应该使用FieldMask来实现部分更新。下面是我自己设计的更新资源的示例:Test

该服务的 API 为部分更新定义了一个Test资源和一个HTTP PATCH方法 ( UpdateTest)。

同样设计的服务器实现使用FieldMask来合并资源(原始消息):

最终结果是一个补丁Test资源:

清除该description字段会完全删除该属性:

...最终修补的Test资源将是:

伟大的。但是如何在 HTTP PATCH 请求中编码呢?

我能想到的唯一“解决方案”是,如果FieldMask包含description但更新的Test资源未提供值,则应使用ClearField将其删除。

这将需要手动访问掩码或Test消息(或两者)中的每个字段,以确定是否应将其删除。这似乎很疯狂,特别是如果资源有很多字段。

0 投票
1 回答
680 浏览

python - 在 Python 中传播 gRPC 上下文

有两个 python gRPC 服务AB.
服务A需要在服务上调用 rpcB才能向客户端发送响应。
服务A还有一个拦截器,可以将信息添加到它使用的 gRPC 上下文中。

问题
如何将 gRPC 上下文传递给服务B,以便在服务中访问有关 gRPC 上下文的信息B

0 投票
2 回答
4177 浏览

go - 如何衡量 gRPC 响应的大小

我正在尝试提出更好的方法来处理 grpc 中的 4mb 消息大小限制。我需要一种方法来测量客户端收到的 grpc 响应的大小。当响应超过 4mb 限制时,grpc 会显示如下错误消息:

无法问候:rpc 错误:代码 = ResourceExhausted desc = grpc:收到的消息大于最大值(74000087 与 4194304)

“74000087”是响应的实际大小。这是如何计算的?有没有办法获得这个值?

我已经阅读了有关该主题的多篇文章,但一无所获?有人可以帮忙吗?谢谢。

我的实现是使用 golang

0 投票
1 回答
3440 浏览

python - 如何在 python 中从 gRPC 客户端关闭 gRPC 服务器?


我有一个 gRPC HelloWorld 服务器正在运行,如官方入门指南(https://grpc.io/docs/quickstart/python/)中所示。我现在想从客户端关闭/终止服务器,可能是通过调用服务器方法。
我知道这是可以做到的,因为我阅读了这篇关于如何在 C++ 中做到这一点的文章。如何从客户端关闭 gRPC 服务器(使用 RPC 功能)

我的编程语言是用于客户端和服务器的 python。任何帮助都感激不尽。

0 投票
1 回答
8711 浏览

python - 尝试访问同一网络上的 grpc 服务器时,grpc 客户端 dns 解析失败

我正在尝试从 Python 客户端调用在 .Net Core 项目上运行的 GRPC 服务器。

当针对localhost:5001它运行时工作正常,但是从同一网络内针对机器的实际 IP 运行192.168.1.230:5001它不起作用并且我得到一个错误DNS resolution failed

我已经下载了 SSL 证书,目前正在将其作为文件从客户端读取。它在对抗时有效,localhost所以我认为这不是问题。

有没有更好的方法来进行这种让客户端在单独的设备上运行但与服务器在同一网络上运行的测试?在开发期间在外部托管 GRPC 服务器似乎并不是最好的解决方案。

Python代码:

中的服务器设置Program.cs

防火墙中的设置: 在此处输入图像描述

追溯:

0 投票
0 回答
2426 浏览

grpc-python - GRPC Python - 从对等 ipv4 收到错误

我正在尝试使用 GRPC 从客户端调用服务器方法,但出现以下错误:从对等 ipv4 收到错误

我试图为此找到解决方案,但现在已经超过一天了,无法弄清楚,请有人帮忙。非常感谢任何帮助

服务器原型文件(chunk.proto):

在服务器端生成代码,生成文件:chunk_pb2_grpc.py 和 chunk_pb2.py

以下是服务器文件:

存储管理器.py

StartNodeExample.py

客户端原型文件(chunk.proto):

客户端生成代码,生成文件:chunk_pb2_grpc.py 和 chunk_pb2.py

以下是客户端文件:

grpc_client.py

server.py(Flask REST API 服务器)

收到错误:

0 投票
0 回答
790 浏览

sockets - GRPC Python - 处理套接字错误的正确方法是什么?

错误 :

此错误的文档说:The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff.

我发现可用的退避 GRPC ARGS是:

默认情况下,这些 args 似乎具有这些值

你怎么知道退避会重试多少次?它是否链接到“grpc.enable_retries”?因为文档提到了“透明重试”,我不确定它是否与退避选项有关。

处理代码 14 错误的正确方法是什么?

0 投票
2 回答
460 浏览

grpc - 使用 Python 编译 Jaeger gRPC proto 文件

我目前正在使用Jaeger Query并尝试通过使用 gRPC的API访问其内容。我对 gRPC 不熟悉,但我的理解是我需要在相关的 proto 文件上使用 Python gRPC 编译器(grpcio_tools.protoc)来获得有用的 Python 定义。我想做的是找出通过 API 访问 Jaeger Query 的方法,而无需前端 UI。

目前,我非常坚持编译 proto 文件。每次尝试时,我都会遇到依赖问题(Import "fileNameHere" was not found 或有错误。)。Jaeger query.proto文件包含对 repo 外部文件的导入引用。虽然我可以找到这些并手动收集它们,但它们也有依赖关系。我的印象是,逐一完成并收集这些内容并不是本打算这样做的。

我在这里做错了吗?通过 Jaeger 提供的直接文档仅限于此。下面是我的基本终端会话,在包含任何手动找到的文件之前(它们本身具有依赖项,我必须去查找文件)。

谢谢你的帮助。

0 投票
1 回答
351 浏览

python - Python Grpc 反序列化 ByteString

在向 GRPC-java 服务器发出请求后,在 Python 客户端中,我得到以下类型的对象:

它有以下方法:

原型看起来像这样:

我的java服务器实现:

这是我的客户端 py 代码:

所以里面msg_count有一个值字符串result

但是当我这样做时:
-msg_count.SerializeToString()我得到b'\n\x1c<ByteString@3ffef3bb size=2>'
-msg_count.result返回result: "<ByteString@3ffef3bb size=2>"

如何获得实际值(如 '14' 而不是<ByteString@3ffef3bb size=2>)?

0 投票
1 回答
81 浏览

benchmarking - 每秒 web-gRPC 性能速率

我想开发一个通过 COM 端口跟踪和调试外部设备的系统。主要服务将使用python开发,用于接收、分析和存储日志数据。我们决定使用 gRPC 协议将日志数据流式传输到 Web 浏览器并绘制实时图表。如果数据是每秒 50K 个信号并且每个信号的最大大小仅为 10 字节,则最高速率。系统将在本地网络或同一台 PC 中使用,因此我们没有带宽限制。我们要确保 web-grpc 平台每秒可以覆盖这个速率。感谢您的建议。