Ищете способ устранить временное хранилище базы данных в ASP. NET Core - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть API, написанный на ASP. NET Core 3.1, который размещен на сервере.

[HttpPost]
public async Task<IActionResult> Post(Packet packet)
{
    var result = await _collectionRepository.AddCollection(JsonSerializer.Serialize(resultPacket));
    return Ok(result);
}

Этот API используется более чем 100 клиентскими машинами для отправки некоторого пакета и все клиентские машины публикуют данные в параллельных вызовах API.

На сервере, где размещен API, я использую MongoDB для временного и периодического хранения данных. Я читаю данные из коллекции mon go db и записываю их в файлы и удаление записей, которые уже прочитаны.

Как вы видите, я зависел от некоторого временного хранилища и затем записывал в файлы.

Вопрос в том, есть ли какая-либо функция, доступная с ядром dot net, где Я могу исключить запись временного хранилища или, по крайней мере, я могу исключить какое-то хранилище базы данных и использовать что-то еще, пожалуйста, предложите?

1 Ответ

1 голос
/ 14 апреля 2020

Я бы не сказал, что есть что-то "встроенное" в. Net Ядро, которое волшебным образом облегчило бы этот процесс. Если вы пытаетесь разгрузить работу из API и базы данных, то, возможно, лучшим вариантом будет просто поместить пакет данных для обработки в очередь сообщений и позволить фоновому «рабочему» процессу обрабатывать их, как позволяет время (если не время) чувствителен к регистру). Если вы являетесь хостингом, вы можете использовать что-то вроде RabbitMQ или в облаке (Azure), у вас есть опции, такие как Azure Очереди хранения или Шина обслуживания. Затем создайте работника (консольное приложение, работающее как служба, или Azure Function), который опрашивает очередь и обрабатывает данные по мере необходимости (экспортирует в файл). Очередь в некоторой степени эквивалентна вашей MongoDB в том смысле, что она является сервером временного хранилища, но очередь может быть более подходящим промежуточным местоположением, чем БД, и она очень хорошо масштабируется.

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