Создание нескольких экземпляров Microsoft.Azure.ServiceBus.QueueClient в .NET Core - PullRequest
0 голосов
/ 21 июня 2019

Я ищу лучшие практики для создания нескольких экземпляров Microsoft.Azure.ServiceBus.QueueClient в .Net Core с использованием Dependency Injection. Например, должны ли экземпляры быть одиночными? Я не мог найти никакого официального руководства по этому вопросу.

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

Проблема заключается в создании пула соединений и времени их жизни, а также о том, как это должно / должно управляться. Я нашел упоминания о MessagingFactory в .NET Framework, но мало информации об аналоге (если есть) в .NET Core.

1 Ответ

0 голосов
/ 21 июня 2019

.NET Framework версия клиента использовала MessagingFactoring в качестве механизма для пула соединений. Каждый клиент, созданный с использованием одной и той же фабрики, будет повторно использовать один и тот же объект подключения.

С клиентом .NET Standard это уже не так. Вы можете выбрать, куда хотите подключить соединение или нет. Если вы создаете все свои клиенты очереди, используя соединение строка , вы будете каждый раз создавать новые соединения. Это и дорого, и требует ресурсов. Если вы создаете своих клиентов очереди, используя один и тот же объект ServiceBusConnection, вы будете повторно использовать одно и то же соединение и не будете оплачивать стоимость восстановления соединения каждый раз.

Обратите внимание, что всякий раз, когда вы повторно используете объект, вам необходимо убедиться, что базовое соединение все еще открыто. Если это не так, вам нужно будет создать новый, указав строку подключения или создав новый объект подключения, используя имеющуюся строку подключения.

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