Задать вопрос
@GoodForest

Nginx обрывает соединение gRPC при тестировании через Locust: Received http2 header with status: 504. Как написать отказоустойчивый сервис на grpc?

Как правильно сделать, чтобы соединение не обрывалось и обрабатывало все запросы? Или обрывалось, когда я считаю, что запрос завершен, так как nginx удерживает соединение между контейнерами какое-то время, если я правильно понял.

Я попробовал сделать подобное по ответу. Ошибка осталась прежней.
#nginx version: nginx/1.19.10
http {
    fastcgi_read_timeout 300;
    proxy_read_timeout 300;
    uwsgi_read_timeout 300;
    grpc_read_timeout 300;
}

server {
    listen 8558 http2;
    charset utf-8;
    location / {
        grpc_pass grpc://stt:8119;
    }
}

Полное описание ошибки от grpc на python:
<_MultiThreadedRendezvous of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Received http2 header with status: 504" debug_error_string = "{"created":"@1641818642.427412518","description":"Received http2 :status header with non-200 OK status","file":"src/core/ext/filters/http/client/http_client_filter.cc","file_line":130,"grpc_message":"Received http2 header with status: 504","grpc_status":14,"value":"504"}" >

Ошибка появляется после нескольких запросов (Количество пользователей и spawn rate 200). При этом после каждого запроса средняя скорость обработки растет. Можете подсказать почему так может быть?
61dd0274a9f7c102554352.png

UPD
Убрал nginx, попробовал делать запросы сразу на grpc - ошибки нет. Но если потребует балансировка запросов, как тогда быть?
  • Вопрос задан
  • 274 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы