我正在尝试将大量数据发送到事件中心。我正在使用EventDataBatch创建一批EventData。并将其发送到事件中心。我最初使用一个EventhubClient
发送批次。后来我创建了var eventHubClientPool = new EventHubClient[MaxConnections];
现在,我以eventHubClientPool[connectionId].SendAsync(ehBatch.ToEnumerable()));
的形式发送每批
connectionId = random.Next(MaxConnections);
如何进一步提高吞吐量?
答案 0 :(得分:0)
根据“最佳做法” Docs
“单个批处理不得超过事件的1 MB限制。此外,该批处理中的每条消息都使用相同的发布者身份。发件人有责任确保该批处理不超过最大事件大小。如果是,则会生成客户端“发送错误”。
如果您仍然想提高吞吐量,
考虑缩小/压缩有效负载。
将您的有效载荷存储在 外部存储(例如Cosmosdb),并发送对您的有效负载的引用 在事件中。
答案 1 :(得分:0)
您必须增加throughput units (TU),一个TU允许:
如何更改吞吐量单位:
TUs apply to all event hubs在 事件中心名称空间。您在名称空间级别购买TU,并且它们在名称空间中的所有事件中心之间共享。
还有Event Hubs Dedicated cluster,它是为要求最苛刻的客户设计的。该产品可构建基于容量的群集,该群集不受TU的束缚,但不受群集的CPU和内存使用率的限制。