2

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

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

但是在接收/消费端,您最多可以创建 32 个接收器(因为我们可以创建 32 个分区,一个分区可以被一个接收器消费)。

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

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

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

2) 或者我必须要求微软允许我创建更多分区。

请指教

4

1 回答 1

6

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

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

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

关于您对多租户的评论,您将拥有一个“数据库使用者”组来处理您的所有租户,所有租户的所有数据都将通过同一个集线器流动?如果这样听起来像是一个明智的用途,那么每个租户都有一个消费者组每个消费整个流就不会那么明智了。

于 2015-01-08T01:02:24.217 回答