【发布时间】:2021-07-14 04:46:13
【问题描述】:
我是 Django 框架的初学者。我编写了一个包含 2 个微服务的应用程序。一个作为 Django Rest 服务器,另一个作为 Django GRPC 服务器。其余请求在第一台服务器中转换为 GRPC 请求并发送到第二台服务器以供进程使用。
------>|-----------|------->|-----------|
|rest server| |grpc server|
| | | |
<------|-----------|<-------|-----------|
当我使用python manage.py runserver ip:port 运行第一台服务器时,应用程序运行正常。但是当我使用gunicorn myapp.wsgi --workers=1 --bind=ip:port 运行第一台服务器时,来自其余服务器的 grpc 请求会随机反击一个错误:
{"created":"@1593330482.005402565","description":"Failed to pick
subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3981,"refer
enced_errors":[{"created":"@1593330482.005396918","description":"failed to connect to all
addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_l
ine":394,"grpc_status":14}]}
有趣的是 grpc 服务器收到了 grpc 请求并返回了响应。
wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')
application = get_wsgi_application()
【问题讨论】: