我很感激帮助为我的场景选择最适合的Azure服务 - 我刚开始使用Azure服务,而且我的知识非常有限。
我有来自多个来源和不同形状的数据进入事件中心。我需要订阅来自Event Hub的事件,并根据它们的格式处理它们并最终将它们保存到SQL数据库中。所有组件 - 事件使用者,SQL数据库 - 都需要托管在云中。
我如何在“Azure Orientated Architecture”中实现这一点?
在off off cloud应用程序中,我会邀请订阅Event Hub的竞争消费者。它们将是一些控制台应用程序或Windows服务,并且每个都将异步处理事件(事件处理是幂等的,这进一步简化了)。
理想情况下,上述消费者的Azure等价物会自动扩展和缩小,所以我不想使用托管控制台应用程序的虚拟机(我需要自己关注虚拟机的资源)。在扩展和部署方面,他们必须表现得像应用程序服务,但我的印象是那些只是用于Web应用程序。我还简要介绍了Web Jobs,但这些似乎是以不同的时间间隔轮询数据,而我需要一个事件中心推送数据的适当事件订阅者。
任何帮助将不胜感激! 谢谢。
稍后编辑:
答案 0 :(得分:2)
您可以看到有关IoT Hub的帖子。它与Event Hub基本相同。 (帖子中的每个示例都可以在事件中心上使用)。 https://stackoverflow.com/a/38682324/6659347
此外,对于Event Hub,您还可以使用具有事件中心触发器的Azure功能 - 该功能将在事件中心收到新事件时运行。它还将满足您对缩放的要求。
如果您正在与多个消费者合作,请确保使用Event Hub使用者组,以便每个消费者可以独立阅读流。
答案 1 :(得分:1)
我说将WebJob与EventProcessor结合使用。我写了一些可以轻松转移到WebJob的演示代码:https://github.com/DeHeerSoftware/SemanticLogging.EventHub/tree/master/SemanticLogging.EventHub.Processor
我使用这种方法自己创建了一个WebJob。像魅力一样。