Безопасно ли нескольким потокам использовать один и тот же объект EventHubClient для публикации событий sh? - PullRequest
0 голосов
/ 15 января 2020

Является ли eventHubClient.SendAsyn c потокобезопасным? То есть я могу получить один экземпляр EventHubClient из EventHubClient.CreateFromConnectionString () и использовать его для записи в концентратор событий из нескольких потоков. Этот код, который я использую, Logger.Log будет использоваться многими потоками в веб-приложении asp. net.

Не удалось найти ответ на этот вопрос в документации ..

class Logger
{
    ...
    static EventHubClient eventHubClient;

    static Logger()
    {
        eventHubClient = EventHubClient.CreateFromConnectionString(hubConnectionString, eventHubName);
    }

    public static void Log()
    {
        ...
        eventHubClient.SendAsync(eventObject);

    }
}

1 Ответ

1 голос
/ 15 января 2020

EventHubClient.SendASyn c () полностью поточно-ориентирован.

Впрочем, с одной стороны. Каждый клиент будет поддерживать одно соединение TCP внизу. Это соединение может стать bottle -гнездом, когда имеется большое количество параллельных отправок, ожидающих либо в очереди, либо в очереди, подлежащей обработке. Поэтому рассмотрите возможность отслеживания количества ожидающих посылок на некоторое время и масштабируйте ваши посылки нескольким клиентам, если это необходимо.

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