API публикует в RabbitMQ очень медленноC#

Место общения программистов C#
Ответить
Anonymous
 API публикует в RabbitMQ очень медленно

Сообщение Anonymous »

У меня очень странное поведение моего API, которое публикует сообщения на сервер RabbitMQ, которое я не могу объяснить, и мне действительно нужна помощь.
Контекст: у меня есть 2 приложения, оба публикуются на одном и том же сервере RabbitMQ, разные очереди, но очереди настроены одинаково, поэтому я не буду вдаваться в подробности их конфигураций.
Оба отправляют сообщения одинаково. У меня настроен массовый транзит при запуске, я использую ISendEndpointProvider, чтобы получить конечную точку отправки, а затем отправить сообщение. Каждая из этих очередей используется разными потребителями, потребители живут в другом приложении, но оба находятся в одном приложении. Опять же, конфигурация массового транспорта одинакова для обоих.
Консольное приложение фоновых процессов:
  • hangfire создает задания;
  • каждое задание получает некоторые данные и начинает помещать все данные в одну и ту же очередь.
  • Операция отправки занимает в среднем 20–40 мс, есть пики, но они случайны и не выходят за рамки 300-400 мс
  • объемы, которые эти задания ставят в очередь, в среднем в 3 раза превышают объем, который API должен поставить в очередь в любой момент времени
Api:
  • 1 конечная точка
  • для каждого запроса, я просто беру сообщение и отправляю его в очередь, вот и все. all
  • И вот здесь становится круто. В определенные интервалы времени среднее время, необходимое для завершения операции отправки, превышает 10 000 мс. А когда идет дождь, это влияет на все операции отправки в API.
Я просмотрел несколько мест:
  • я не могу связать это с количеством получаемых запросов, я зарегистрировал одинаковое количество запросов в разные моменты времени, иногда операция отправки занимает много времени, иногда она занимает в среднем 20-40 мс -> поэтому я на самом деле не могу связать его с пулом потоков, параллелизмом или каким-либо истощением, но, пожалуйста, скажите мне, если вы думаете, что это может быть виновником
  • если оно исходит от сервера RabbitMQ, я не понимаю, почему консольное приложение не страдает, когда оно публикует больше сообщений. и с сервером, кажется, все в порядке.
На данный момент единственная разница - это сам тип проекта и то, как может работать время жизни. Но я не могу на что-то указать, потому что пункт 1. меня как-то сбивает с толку. И мне очень нужны предложения. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... lly-slowly
Ответить

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

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

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

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

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