多个线程使用同一EventHubClient对象发布事件是否安全?

问题描述 投票:0回答:1

eventHubClient.SendAsync线程安全吗?也就是说,我可以从EventHubClient.CreateFromConnectionString()获取EventHubClient的一个实例,然后使用它从多个线程写入事件中心。我使用的这段代码Logger.Log将被asp.net Web应用程序中的许多线程使用。

在文档中找不到答案。

class Logger
{
    ...
    static EventHubClient eventHubClient;

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

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

    }
}
.net azure-eventhub
1个回答
1
投票

EventHubClient.SendASync()完全是线程安全的。

虽然有一个旁注。每个客户端将在下面维护一个TCP连接。当有大量并行发送等待排队或正在处理的队列时,此连接可能成为瓶颈。因此,考虑一段时间监控未决发送的数量,并在需要时将您的发送扩展到多个客户端。

© www.soinside.com 2019 - 2024. All rights reserved.