Java Spring: вернуть большую строку в остальные API - PullRequest
0 голосов
/ 24 августа 2018

У меня есть веб-приложение, которое работает с определенной библиотекой на стороне сервера.есть REST API, которые выполняют некоторые функции из этой библиотеки на сервере и возвращают строки.

Возвращаемые строки могут быть очень большими ~ 100 тыс. строк.

Я не имел опыта в этой области.мой вопрос как правильно справиться с такой ситуацией .

в настоящее время я возвращаю все в строке, но я чувствую, что что-то упустил

/**
 * POST /do/action
 * @param action
 */
@PostMapping("/do/action")
@Timed
public @ResponseBody String doAction(@RequestParam String action) throws URISyntaxException {
    return JSONObject.quote(actionService.doAction(action));
}

1 Ответ

0 голосов
/ 24 августа 2018

Я думаю, что способ улучшить ситуацию - отправить это в виде потока.Это по крайней мере помешает вам загрузить все эти данные в оперативную память.

Вы также можете подумать о сжатии вашего ответа (например, gzip).Это значительно уменьшит размер данных.

Следующее, что вы можете сделать, зависит от функционального аспекта.Можно ли обрезать вашу строку и разрешить читать, может быть, 100 строк при каждом запросе?

Может быть, вы можете добавить к своему WS два параметра: количество строк и смещение.Может быть, вы можете добавить некоторые параметры, чтобы отфильтровать ненужные строки.Возможно, в каждой строке есть дата, которую вы можете использовать для фильтрации.Ваша цель должна заключаться в том, чтобы ограничить объем отправляемых данных и ограничить объемы операций ввода-вывода или обработки при построении вашей строки.Я не знаю, читали ли вы вашу строку из базы данных, файла или это результат некоторых вычислений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...