Идея улучшения производительности о сохранении большого количества объектов в базу данных - PullRequest
0 голосов
/ 23 апреля 2020

Мое веб-приложение имеет одну функцию, которая позволяет пользователю отправлять сообщения всем друзьям. Количество друзей может быть от 100К до 200К. Приложение использует Spring и Hibernate.

Это влечет за собой выбор информации о друзьях, создание объекта сообщения и сохранение его в базе данных. После того, как все сообщения отправлены (фактически сохранены в БД), появится всплывающее уведомление, показывающее, сколько сообщений отправлено успешно, например, отправлено 99/100 или 100/100.

Однако, когда я проходил нагрузочное тестирование эта особенность. До финиша sh ушло очень много времени. Я пытаюсь улучшить производительность. Один из подходов, которые я попробовал, состоял в том, чтобы разделить друзей на маленькие партии, одновременно извлекать / сохранять каждую партию и ждать, пока все они завершатся sh. Но это все еще не принесло особых улучшений.

Мне было интересно, есть ли другие способы, которые я могу попробовать. Другой подход, который я могу придумать, заключается в использовании WebSockets для отправки каждого пакета и обновления уведомлений после каждого пакета и запуска следующего пакета до тех пор, пока все пакеты не будут отправлены. Но как пользователь может получить уведомление после того, как он уходит со страницы сообщения? Логика Websocket c на стороне клиента должна быть где-то глобальной, правильно?

Заранее спасибо.

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