Что является альтернативой ServiceBus MessagingFactory в. Net Core? - PullRequest
0 голосов
/ 12 марта 2020

При преобразовании моего проекта из. Net framework 4.7 в. Net core 2.1 я столкнулся с проблемой с Servicebus MessagingFactory. Я не вижу MessagingFactory класса в новом пакете nuget Microsoft.Azure.ServiceBus для. Net core.

My. Net framework 4.7 Код

private static readonly string messagingConnectionString = Environment.GetEnvironmentVariable("ServiceBusConnection");

    private static Lazy<MessagingFactory> lazyMessagingFactory = new Lazy<MessagingFactory>(() =>
    {
        return MessagingFactory.CreateFromConnectionString(messagingConnectionString);
    });

    public static MessagingFactory MessagingFactory
    {
        get
        {
            return lazyMessagingFactory.Value;
        }
    }

public static MessagingFactory EventHubMessageFactory
    {
        get
        {
            return lazyEventhubMessagingFactory.Value;
        }
    }

public async Task SendMessageToQueueAsync(string queueName, string message)
    {
        QueueClient queueClient = MessagingFactory.CreateQueueClient(queueName);
        BrokeredMessage brokeredMessage = new BrokeredMessage(new MemoryStream(Encoding.UTF8.GetBytes(message)), true);
        await queueClient.SendAsync(brokeredMessage);
    }

Это был передовой опыт для высокопроизводительных приложений. Кроме того, у меня есть много очередей в пространстве имен единой служебной шины, и я получаю сообщение sh в зависимости от конфигурации. Я не хочу создавать QueueClient объект в каждом запросе и не хочу поддерживать строку подключения для каждой очереди.

Что является альтернативой MessagingFactory in. Net Core?

1 Ответ

0 голосов
/ 12 марта 2020

https://github.com/MicrosoftDocs/azure-docs/issues/46830

https://github.com/Azure/azure-service-bus-dotnet/issues/556

Пока MessagingFactory не существует, идея объединения и совместного использования соединений там. Когда вы создаете своих клиентов, передача соединения будет использовать его повторно. При передаче строки соединения клиенты будут устанавливать sh новое соединение.

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

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