创建多个事件集线器接收器以同时处理大量数据

时间:2017-09-25 03:24:47

标签: azure azure-webjobs azure-eventhub

您好我有一个有两个消费者群体的活动中心。

许多设备都在向我的事件中心发送数据,我想将所有信息保存到我的数据库。

现在数据正在由多个设备发送,因此数据进入高,所以为了处理这些消息,我已经编写了一个EventHub Trigger webjob处理消息并保存到数据库。

但是,由于将这些消息保存到我的数据库是一项耗时的任务,或者我可以说接收器速度比发送器速度慢。

因此有两种方法可以通过创建多种接收器来更快地处理这些消息。

我已经创建了两个具有不同消费者群体的事件接收器,但我发现两个触发器功能都处理了相同的消息,所以现在重复数据将保存在我的数据库中。

所以请帮助我知道如何创建多个接收器,它将处理独特的消息并行。

请伙计们帮帮我......

1 个答案:

答案 0 :(得分:0)

创建多个消费者群体并不能帮助您解决问题。不同的消费者群体都读取相同的数据,但他们可以有自己的速度。

为了提高处理速度,只有两个选项:

  1. 使流程/代码本身更快,因此尝试优化将数据保存到数据库的代码
  2. 增加分区数量,以便更多的消费者可以并行读取给定分区中的数据。但这意味着您必须重新创建事件中心,因为在创建事件中心后无法增加/减少分区计数。有关指导,请参阅the docs
  3. 约2:并发数据使用者数等于创建的分区数。例如,如果您有4个分区,则最多可以有4个并发数据读取器处理数据。

    我不知道你的情况,但是如果你有一些处理速度太慢的峰值但是在更安静的时间内赶上你可能能够适应当前的情况。如果没有,你必须做我概述的事情。