python - rpc 错误:代码 = 不可用 desc = 上游连接错误或在标头之前断开/重置。重置原因:协议错误
问题描述
我正在尝试使用 GCP Cloud run 来托管 REST 和 gRPC 服务。我正在使用Sonora多路复用服务器,以便能够为这两个服务使用相同的端口 (443)。
到目前为止,这是我的初始化应用程序:
from flask import Flask
from sonora.wsgi import grpcWSGI
from app.services.api.analyse.v1 import servicer
from app.domain.entity.analysis.proto.analysis_pb2_grpc import add_AnalyserServicer_to_server
from app.services.api.health.v1.health import health_check_blueprint
from app.services.api.analyse.v1.analyse import analyse_blueprint
app = Flask(__name__)
app.register_blueprint(health_check_blueprint)
app.register_blueprint(analyse_blueprint)
app.wsgi_app = grpcWSGI(app.wsgi_app)
add_AnalyserServicer_to_server(servicer, app)
但不幸的是,当我使用我的客户端点击 gRPC 功能时,我在标题中遇到了错误。
REST 端点似乎工作得很好。
我的 Dockerfile 中的 cmd 如下所示:
CMD exec gunicorn --bind :${PORT} --workers 1 --threads 8 --timeout 0 --log-level=error app.services.server.v1:app
解决方案
推荐阅读
- php - 多维数组到字符串的转换
- r - 复杂的绑定列(使用 dplyr 通过 left_join 和 bind cols 重新组织数据)
- python - 处理ValueError:Series的真值不明确| 寻找熊猫指数的多种条件
- mysql - mysql将2行分组为1行之间只有一个不同的值
- r - R编程,如何检查数字是否包含最后一位1?
- memory - 如何检查进程的(绝对)内存使用情况?
- c++ - 如何释放由链表实现的队列类的成员函数动态分配的内存?
- c++ - C++20 的 'requires' 关键字会减慢你的程序吗?
- asp.net - Web 开发路线图
- c - 如何使用索引和列表作为参数从 C 中的链表中删除项目?