【问题标题】:Which Azure service to use for processing data from Event Hub?使用哪个 Azure 服务来处理来自事件中心的数据?
【发布时间】:2016-12-14 01:21:01
【问题描述】:

如果能帮助我为我的方案挑选最适合的 Azure 服务,我将不胜感激 - 我刚刚开始使用 Azure 服务,我的知识非常有限。

我有来自多个来源、不同形状的数据进入事件中心。我需要从事件中心订阅事件,并根据它们的格式处理它们并最终将它们保存到 SQL 数据库中。所有组件——事件消费者、SQL 数据库——都需要托管在云中。

如何在“面向 Azure 的体系结构”中实现这一点?

在非云应用程序中,我会让竞争消费者订阅事件中心。它们可能是一些控制台应用程序或 Windows 服务,并且每个都将异步处理事件(这通过事件处理是幂等的而进一步简化)。

理想情况下,与上述消费者等效的 Azure 会自动扩展和缩减,因此我希望不必使用托管控制台应用程序的 VM(我需要自己关注 VM 的资源)。在扩展和部署方面,它们必须表现得像应用服务,但我的印象是这些只是用于 Web 应用程序。我还简要地查看了 Web 作业,但它们似乎是以不同的时间间隔轮询数据,而我需要一个适当的事件订阅者,事件中心将数据推送到其中。

任何帮助将不胜感激! 谢谢。

稍后编辑:

  1. 我研究了 Web Jobs,它们确实允许连续 处理,因此看起来它们可以自动使用 扩展订阅者。
  2. 理想情况下,我想为 F# 中的订阅者。如果不是,C# 是另一种选择 可用。

【问题讨论】:

  • 对我的问题投了反对票的人:请您解释一下吗?除非你这样做,否则我不会从中学到任何东西。
  • 这是一个很好的问题,谢谢你的提问!

标签: azure events consumer azure-eventhub


【解决方案1】:

您可以查看我关于 IoT 中心的帖子。事件中心基本相同。 (帖子中的每个示例都可用于事件中心)。 https://stackoverflow.com/a/38682324/6659347

此外,对于事件中心,您还可以使用具有事件中心触发器的 Azure 函数 - 该函数将在事件中心接收到新事件时运行。它还将满足您对扩展的要求。

如果您与多个消费者合作,请确保使用事件中心消费者组,以便每个消费者都可以独立读取流。

【讨论】:

  • 谢谢。我查看了选项,流分析暗示我必须使用 SA 查询语言处理事件,不是吗?我想对处理代码进行版本控制,并使其比 QL 允许的更多。
  • worker 角色(第二个选项) - 不太了解,但看了它正在被 Web Jobs 取代,所以宁愿使用连续的 WebJob。 Storm 选项看起来确实太贵了。 Functions 听起来很棒,但尚不支持 F#。除非存在更合适的东西,否则将使用 C# 代码或连续的 WebJobs。
  • @user2916547 - 关于 SA,是的,您需要使用 QL 来处理数据。如果您实际上不需要对流本身进行分析,则可以仅使用 QL 将数据保存到数据库中并进行自己的查询。 Azure Function 是一个不错的选择,因为它们已经在 C# 中内置了事件中心侦听器。
  • 不幸的是,流分析 QL 对我的需要来说太严格了。
  • 感谢您的回答;最终我会采用 WebJob 方法,因此我将 Peter Bons 的答案标记为解决方案,但您的答案仍然具有指导意义。
【解决方案2】:

我会说将 WebJob 与 EventProcessor 结合使用。我写了一些可以轻松转移到 WebJob 的演示代码:https://github.com/DeHeerSoftware/SemanticLogging.EventHub/tree/master/SemanticLogging.EventHub.Processor

有关官方文档,请参阅https://azure.microsoft.com/en-us/documentation/articles/event-hubs-csharp-ephcs-getstarted/#receive-messages-with-eventprocessorhost

我自己使用这种方法创建了一个 WebJob。像魅力一样工作。

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 2019-06-06
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2021-12-01
    • 2017-06-19
    相关资源
    最近更新 更多