Когда я должен разбить на страницы свой ответ REST API?

В настоящее время у меня проблема с настройкой производственного развертывания в 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/fix-nginx-timeout-499-client-closed-request/

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

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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …