gpt4 book ai didi

azure - eventhub 中的大规模消息处理

转载 作者:行者123 更新时间:2023-12-02 08:30:19 33 4
gpt4 key购买 nike

据我了解,eventhub 每秒可以处理/摄取数百万条消息。为了调整摄取,我们可以使用吞吐量。

更高的吞吐量=更强的摄取能力。

但是在接收/消费方面,您最多可以创建 32 个接收者(因为我们可以创建 32 个分区,并且一个分区可以由一个接收者消费)。

基于上述,如果处理一条消息需要 100 毫秒,那么一个消费者每秒可以处理 10 条消息,32 个消费者每秒可以处理 32*10= 320 条消息。

如何让我的接收器消耗更多消息(例如每秒 5-10k)。

1) 要么我必须在 ProcessEventsAsync 内异步处理消息。但在这种情况下,我将无法维持排序。

2) 或者我必须请求 Microsoft 允许我创建更多分区。

请指教

最佳答案

TLDR:您需要请求 Microsoft 增加允许的分区数量,并记住,目前无法增加现有事件中心的数量。

您的消耗并行单位是分区是正确的。如果您的消费者只能按顺序执行 10/秒甚至 100/秒,那么您将需要更多分区来消费数百万个事件。虽然 100 毫秒/事件对我来说确实很慢,而且我认为您应该在那里寻求优化(即分担不需要等待的工作、减少提交次数等),但您将达到需要大规模更多分区的程度。

需要记住的一些事情:32 个分区只能提供 32 Mb/s 的入口速度和 64 Mb/s 的导出速度。这两个因素都很重要,因为导出吞吐量由您使用的所有消费者组共享。因此,如果您有 4 个消费者组读取数据(每个 16Mb/s),您将需要两倍的分区(或至少吞吐量单位)作为输入,因为您将仅基于数据入口(因为否则您会落后) .

关于您对 Multi-Tenancy 的评论,您将有一个“数据库消费者”组来处理所有租户,所有租户的数据都将流经同一中心?如果这听起来是一种明智的使用,那么就不那么明智的是让每个租户有一个消费者组,每个消费者组消耗整个流。

关于azure - eventhub 中的大规模消息处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27645204/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com