Как эффективно реализовать аудит фоновой службы с высокой пропускной способностью в .NET 8?C#

Место общения программистов C#
Ответить
Anonymous
 Как эффективно реализовать аудит фоновой службы с высокой пропускной способностью в .NET 8?

Сообщение Anonymous »

У меня есть фоновая служба .NET 8, отвечающая за две основные задачи:
1. Отправка пакетов данных JSON брокерам сообщений (очереди ActiveMQ, RabbitMQ или JMS):
  • Отправляет примерно 25 000 пакетов данных JSON каждые 2 минуты (данные размер может варьироваться от 25 000 до 20 000 000).
  • Этот процесс выполняется асинхронно.
2. Управляйте несколькими службами с помощью этого механизма push:
  • Одновременно работает 21 различная служба, все работают асинхронно и в одном режиме. базу данных.
  • Каждая служба имеет 10-минутный интервал ожидания после отправки пакета.

Новое требование:

Теперь мне нужно реализовать аудит каждого пакета данных, передаваемого брокеру. В частности, мне нужно регистрировать каждую запись в базе данных SQL с отметкой времени, указывающей, когда она была отправлена.
Задачи:
  • < li>Объем обрабатываемых данных значителен, и время простоя базы данных SQL неприемлемо.
  • Решение должно эффективно обрабатывать высокую пропускную способность, не становясь узким местом для операций отправки в очередь.< /li>
Подходы На данный момент я рассматривал следующее:
  • Реализацию простой службы «запустил и забыл», используя асинхронные возможности C# для регистрации данных в SQL. Однако я не уверен, сможет ли он эффективно справиться с нагрузкой.
  • Использование библиотеки фоновой обработки заданий, такой как Hangfire, для переноса аудита в отдельный рабочий процесс.
Как я могу обеспечить масштабируемость и надежность, не допуская при этом, чтобы база данных SQL стала узким местом?
Я еще не завершил подход и открыт другим идеям или улучшениям. Будем очень признательны за любые предложения и идеи.

Подробнее здесь: https://stackoverflow.com/questions/792 ... service-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»