问题标签 [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.
sockets - gRPC 可以进行多播吗?如果是,如何在 python 或 c++ 中做到这一点?
我正在尝试将多个客户端连接到服务器,所有连接的客户端都从服务器获取相同的数据。像客户端这样的东西可以订阅服务并从服务器获取相同的数据。
我尝试将多个客户端连接到服务器并发送递增数字流。它工作正常,但是当新客户端进入时,它应该从接收相同数据的旧客户端开始。
服务器流式传输消息:
我想将此消息多播到多个连接的客户端
protocol-buffers - 值为 0 的 Protobuf 字段有效
我们正在使用 protobufs 对我们的网络软件进行建模。有许多实例,例如优先级,其中 0 是有效值。但是,当我们传输时,具有 0 值的字段会被抑制。有没有办法改变这种行为?也就是说,将有效值为0的字段与尚未设置的字段区分开来,可以抑制?
我们的客户端是 gRPC-Java,服务器是 gRPC-Python。
感谢您的时间。
python-3.6 - 从 gRPC beta-API 到 GA-API 的客户端迁移
我正在通过 gRPC 与 tensorflow 模型服务器通信,以便对我的数据进行预测。用于建立连接的 python3 应用程序基于教程并成功完成其工作。
但是,教程代码使用了 python gRPC 的 beta API,我试图尽可能保持最新。与模型服务器建立安全连接并执行预测的 Python gRPC GA API 等效代码是什么?
这是使用虚拟数据工作的代码
我试过用他们的 GA API 等效替换 beta API 调用。但是,metadata_transformer
存根中不再有 a 这样的东西,我既不了解它的用途,也不知道在哪里填充它。
这是相关的一段代码,后面是错误消息,现在需要 tf-serving 版本 1.11。
我对模型服务器没有任何控制权,我不知道我正在尝试的是否可能(即是否有 python gRPC Beta API 的服务器端挂件,它必须实现 GA API 以便我成功了吗?)
任何帮助是极大的赞赏。
python - 为什么添加```flask_sockets.worker```到gunicorn会减慢gRPC客户端连接?
我正在构建一个连接到后台 gRPC 服务的烧瓶服务器。我计划使用 gunicorn 来服务于烧瓶应用程序。添加 aflask_sockets.worker
会大大减慢它的速度!
这是一个最小的工作示例,
如果我使用运行应用程序,
一切似乎都很好。但如果我改为使用,
该页面需要永远加载。我需要使用flash_sockets
一些额外的功能。最终我看到,
页面加载!我该如何解决这个问题?我的环境有,
python - grpcio-tools protoc.main 给出“缺少输出指令”错误
我想用于protoc.main(...)
在运行时生成 python gRPC 文件,如下所示。
上面的代码给出了带有结果代码的“缺少输出指令”错误1
。
但是,下面的解决方法可以alpha.proto
作为命令行 args 工作。这意味着alpha.proto
文件很好。
可能的原因是 (1)protoc.main
确实像下面的代码那样对每个字符进行编码,或者 (2) 在内部protoc.main
错误地解析了参数路径。
如何protoc.main
正确使用?
grpc-python - python grpc:为每个 grpc 调用设置超时
有没有办法用 python 指定每个 grpc 调用的超时时间。我在收到回复时遇到超过 1 分钟的延迟。我希望 api 返回一些错误,以防它需要更长的指定时间。我正在使用阻塞 grpc 调用。
streaming - 如何从客户端 grpc 结束服务器服务器流
我想实现一个可以被客户端调用来结束服务器流的方法。grpc python中有什么东西或者我该如何实现它。简而言之,我希望客户说“不再流式传输”。另外,我希望我的服务器在完成流式传输后不会触发回调。
我的原型如下所示:
客户端.py:
服务器.py:
android - 在 python 服务器和 android(java) 客户端之间使用 grpc 创建连接
我在本地机器上的 python 上运行一个简单的 GRPC 服务器。当我尝试使用 java 从我的 android 设备连接到它时,我不断收到Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE
错误消息。请注意,我尝试通过 python 客户端连接到服务器,它按预期工作。该问题仅在使用 java 客户端时存在。
我曾尝试在python中使用客户端来检查proto文件是否有问题,并且它工作正常,所以我认为问题出在python服务器和java客户端组合之间的连接上。
原型文件:
蟒蛇服务器
这应该返回一个具有一个值的迭代器,即字符串:“hello miser NAME”。实际结果:
Caused by:io.grpc.StatusRuntimeException: UNAVAILABLE
python - gRPC channel.close() 需要 10 秒
我正在尝试在我的生产服务器中使用以下代码(我想将其扩展到超过 500 TPS)。当我用许多请求淹没服务器时,我面临以下问题。在 1000 个请求中的至少 1 个请求中,channel.close() 调用需要 10-10.5 秒。我在 Flask 服务器上运行代码。目前,对于每个请求,我都在创建一个通道并关闭它。请帮我解决一下这个。
python-3.x - gRPC:如何结合静态和流参数调用远程过程?
我正在尝试使用 gRPC 传输文件。我可以使用 gRPC 流发送数据,分成块。我正在寻找将文件名与数据一起传输的方法。我确定我缺少一个明显的解决方案。但这里有一些我能想到的方法
- 与每个块一起发送文件名,这是重传相同数据的明显缺点。.proto 文件看起来像
- 将文件名作为第一个块发送。接收器需要知道这种编码。
但我正在寻找一个非hacky的解决方案。
我希望有一个像
但根据这里的回答,这是不可能的,也不鼓励
一般来说,有没有一种更简洁的方法来调用一个结合了普通参数和流参数的过程?或达到同样的效果?