如何创建使用多个基础TCP连接的多个EventHubClient,以允许从.net核心Web应用程序快速写入EventHub?
在EventHubs(https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-programming-guide)的编程指南中写为:
重要的是要注意,从消息传递工厂实例创建的其他EventHubClient对象将重用同一基础TCP连接。因此,这些对象在吞吐量上具有客户端限制。 Create方法重复使用单个消息传递工厂。如果您需要单个发件人很高的吞吐量,则可以从每个消息传递工厂创建多个消息工厂和一个EventHubClient对象。
然后他们有一个代码示例:
var factory = MessagingFactory.CreateFromConnectionString("your_connection_string");
var client = factory.CreateEventHubClient("MyEventHub");
但是,我不知道.Net核心在哪里/是否有MessagingFactory?是否可以从.Net核心执行此操作?我查看了Microsoft.Azure.ServiceBus,但找不到任何内容。
最佳答案
经过测试,似乎使用EventHubClient.CreateFromConnectionString
创建多个客户端将按预期打开与EventHubs的多个连接。 (这些连接可以在Windows资源监视器中视为单独的TCP连接)。
(当我仔细阅读文档时,我认为它仅适用于从MessaginFactory创建的EventHubClients,这在我第一次阅读时并不清楚。但是我将其添加为答案,并保留此问题,以防其他人阅读该文档,例如我刚开始)