Я разрабатываю новый WebAPI в .NET Core
, который прослушивает события и собирает их в памяти (используя Microsoft.Extensions.Caching.Memory ). Потребители этого веб-API будут отправлять запросы данных, поэтому API должен иметь возможность concurrently
обрабатывать высокую частоту PUT
запросов, чтобы события сохранялись в памяти и других высокочастотных GET
запросах от клиентов. API должен будет манипулировать такими данными, хранящимися в памяти, чтобы иметь возможность обслуживать потребителей, поэтому будут некоторые циклы / фильтры и другие операции с интенсивным использованием ЦП. Объем этих данных довольно большой, в общей сложности примерно 50Gb , поэтому я ищу способы масштабирования этого WebAPI
. У меня есть 20 независимых категорий событий, так что я могу технически распределить нагрузку, создав API-интерфейс по категориям, чтобы я мог установить 20 API-интерфейсов для каждого на отдельном хосте.
Это был бы хороший подход? Какие способы вы бы использовали для масштабирования этого API?
Я рассматриваю распределенный кеш как альтернативный вариант, например Redis
или MSSQL cache
, но мне действительно нужно туда попасть?