Когда я должен разбить на страницы свой ответ REST API? - PullRequest
0 голосов
/ 08 мая 2018

В настоящее время у меня проблема с настройкой производственного развертывания на AWS. У меня есть экземпляр EC2 с NGINX / PHP / Laravel 5.1, который находится за AWS ELB.

Один из моих RESTAPI возвращает ответ размером от 1,2 до 1,6 МБ в конкретном сценарии (в большинстве общих сценариев он возвращает гораздо меньшие размеры ответов) и время ожидания вызовов. Следующее сообщение об ошибке записывается в журнал

Тайм-аут восходящего потока (110: Тайм-аут соединения) при чтении ответа заголовок из восходящего потока, клиент: xxxxxxxxxxx, сервер: xxxxxxxxxxx, запрос: «POST / api / event / gallery HTTP / 1.1», upstream: "fastcgi: // unix: /run/php/php7.0-fpm.sock", хост: "xxxxxxxxxxx"

1.2-1.6 МБ, по-видимому, не является большим размером ответа для объяснения времени ожидания.

Я подтвердил, что мой фактический вызов PHP (в нижней части стека вызовов) возвращается в течение 20 секунд.

Последующие исследования показали, что время ожидания AWS ELB составляет 60 секунд, и, вероятно, соединение закрывается.

https://www.cadence -labs.com / 2017/07 / фикс-Nginx-Тайм-аут 499-клиент-замкнутого-запрос /

Мой экземпляр AWS EC2 имеет тип m4.large. И я обеспокоен тем, почему производственная установка с проверенными компонентами, такими как AWS ELB, NGINX, будет иметь проблемы с эффективной обработкой данных размером 1.x mb. Вполне вероятно, что я делаю что-то не так, или я неправильно настроил всю систему развертывания. Пожалуйста, помогите с вашими предложениями.

Или, может быть, я слишком оптимистичен, и мне следует перейти к разбивке по моим ответам, чтобы удовлетворить большие размеры ответов. Но опять же, я не хочу разбивать на страницы, не понимая границ или не зная точно, когда я должен. Каков максимальный размер / предел для ответа REST API, после которого я должен рассмотреть разбиение на страницы?

...