P
В общем, на спринге хочу написать онлайн игрушку. Есть вебсокеты. Есть игровые комнаты.
Первый вопрос такой: хочется сохранять всю игровую информацию в бд(а не держать в памяти), чтобы в последствии если что можно было расширять в ширину сервера итд. Все комнаты обновляются раз в секунду. И я вот думаю: оправдано ли по скорости и нагрузке каждую секунду брать из базы все данные по игровым комнатам, обрабатывать их, делать какие/то манипуляции и сохранять? Просто такой подход не очень тяжёлый в реализации по сравнению с подходом комбинирования in-memory с бд. Я пытался второй реализовать, но как-то все у меня плохо пошло с транзакциями, spring jpa, но если такой подход более правильный, то буду копать в его сторону.
И второй вопрос: очень удобно было бы представлять комнату как отдельный экземпляр класса с логикой и данными. Но у меня же спринг, объекты созданные с new он не менеджерит, а создавать бины в рантайме - это вроде как моветон. Поэтому пришлось сделать сервис, в котором на вход каждому методу подаётся экземпляр игровой комнаты(читай данные) для манипуляций. Посмотрев на это сверху, кажется что все приложение построено на статик методах, мне кажется что это совсем не тот подход. Что можете посоветовать?