【问题标题】:Create multiple Event hub receiver to process huge volume of data concurrently创建多个事件中心接收器以同时处理大量数据
【发布时间】:2018-03-05 22:45:19
【问题描述】:

您好,我有一个包含两个消费者组的事件中心。

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

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

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

那么有什么方法可以通过创建多个接收者来更快地处理这些消息。

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

所以请帮助我了解如何创建多个接收器来并行处理唯一消息。

请大家帮帮我...

【问题讨论】:

标签: azure azure-webjobs azure-eventhub


【解决方案1】:

创建多个消费者组不会像您自己发现的那样帮助您。不同的消费群体都读取相同的数据,但他们可以有自己的速度。

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

  1. 使进程/代码本身更快,因此请尝试优化将数据保存到数据库的代码
  2. 增加分区数量,以便更多消费者可以并行读取给定分区中的数据。然而,这意味着您将不得不重新创建事件中心,因为在创建事件中心后您无法增加/减少分区计数。请参阅 the docs 获取指导。

约2:并发数据消费者的数量等于创建的分区数量。例如,如果您有 4 个分区,则最多可以有 4 个并发数据读取器处理数据。

我不知道您的情况,但如果您在某些高峰期处理速度太慢但在更安静的时间赶上,您可能能够接受当前的情况。如果没有,您必须按照我概述的方式进行操作。

【讨论】:

    猜你喜欢
    • 2019-08-24
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多