Сервисная шина в ASP.NET Core - PullRequest
       40

Сервисная шина в ASP.NET Core

1 голос
/ 04 ноября 2019

Мне бы хотелось, чтобы приложение ASP.NET Core отправляло сообщения на служебную шину Azure.

В статье Microsoft Рекомендации по улучшению производительности с помощью обмена сообщениями служебной шины утверждают, что вам следуетповторно использовать экземпляры клиентов.

Рекомендуется не закрывать фабрики обмена сообщениями или клиенты очередей, тем и подписки после отправки сообщения, а затем повторно создавать их при отправке сообщения. следующее сообщение.

Поэтому я понимаю, что не должен создавать новый экземпляр клиента (TopicClient или QueueClient) внутри моегоконтроллер, использующий ключевое слово new.

Я полагаю, что я должен использовать внедрение зависимостей в ASP.NET Core .

Должен ли я напрямую вводить TopicClient / QueueClient или я должен создать собственный класс, который оборачивает экземпляр клиента и предоставляет метод SendAsync?

При регистрации службы с помощью инжектора зависимостей я должен зарегистрировать его как синглтон?

1 Ответ

0 голосов
/ 04 ноября 2019

Мы сделали это с помощью класса-обертки, который затем возвращал TopicClient / QueueClient и зарегистрировали его как синглтон, и не обнаружили серьезных проблем с этим подходом.

Мы основали наш подход на этом примере, предоставленном Microsoft eshopOnContainers .

Пример кода для этой функции находится в этом файле . Затем они регистрируют этот класс как синглтон в Startup.cs в службах, где им требуется ServiceBus.

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