• Как оптимизировать сервер с большим количеством запросом?

    MANAB
    @MANAB
    Разрабатываю на C#: Web, Desktop, Gamedev
    Интересная задача, и если прям про высокую нагрузку говорить, то действительно лучше использовать in-memory базу типа Redis как предлагали выше. Для безопасности можно ее периодически копировать в обычную базу на диске.
    2йвариант, если хочется меньше заморачиваться - выбрать облачную бд, которую просто масштабируешь под свои нагрузки и не пытаешься вникнуть, как это сделано. Потипу DTU-based бд в Azure.
    Ну а само веб приложение - горизонтальное масштабирование, т.е. много экзепляров приложения + балансер нагрузки, которые лезут все в одну и туже базу.
    Ответ написан
    Комментировать
  • Как оптимизировать сервер с большим количеством запросом?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Как понял схема данных следующая:
    - Есть замер времени - отедльный объект со своим ID
    - У каждого замера времени есть список штампов - конкретного времени
    - Эти штампы создают пользователи - отправляют запросы

    Для данного кейса мне видится такое решение:
    - Используем Redis в качестве БД
    - Для ID замеров используем snowflake
    - Тип данных Redis для замеров - list (список)
    - В каждом списке храним эти штампы - строка или unix timestamp (неважно)

    Таким образом, на каждый запрос просто добавляем новый элемент в этот список.

    Redis хорошо выдерживает высокую нагрузку + его можно масштабировать.
    Благодаря snowflake можно горизонтально мастшабировать свои сервисы.
    Также, ты указал websocket - здесь как хочешь. Но в .NET есть реализация Redis которая использует мультиплексирование - здесь он будет уместен.
    Ответ написан
    2 комментария