我是azure事件中心的新手,并试图看到 是否有一个选项,用EventHubs / azure函数实现流水线处理(组件链,其中首先输出到链中的下一个)?
我有一个来自事件中心的数据流,我有一些组件,每个组件执行一个特定的功能,并将结果传递给下一个组件。下一个组件可能需要事件原始数据和从先前组件生成的结果(可以具有排序依赖性)。 事件中心/天蓝色功能是否适合此类情况?据我所知,每个消费者都有自己的事件副本,因此无法对消费者进行流水线操作。
在天蓝色的大型事件流中,设计流水线组件的最佳方法是什么(以便在需要时可以在管道中添加新组件)? 或者azure甚至集线器中的唯一选择是让单个消费者创建组件的完整处理管道(这将在某种程度上耦合)。 我不想在每个组件之间使用不同的事件中心(即使完全解耦,但要管理的事件中心太多)
答案 0 :(得分:1)
Eventhubs构成数据/事件管道的数据提取结束。然后从那里处理,分析(实时)数据并存储并且可能分类并且稍后分析历史数据。这形成了典型的管道。 您希望在每个被提取到事件中心的消息上使用不同的组件/规则引擎等应用一系列不同类型的处理。
我能想到的选项是
1)EventProcessorHost - 在这里,您可以编写自己的自定义代码(一个接一个的组件),以异步方式接收来自事件中心的所有或特定分区的消息。这涉及在代码中连接所有逻辑。因此,如果您需要引入新组件,则意味着它将涉及代码更改和新部署。
2)根据您的观点,您还可以拥有多个中间事件中心并进行处理,但这可能会变得昂贵。您可能希望将服务总线队列视为加载消息以供后续处理的中间点,这将是一个更便宜的选择。
3)逻辑应用程序为您提供工作流程编排类型模型。在这种情况下,您可以将来自eventhubs的事件作为启动工作流程的触发器。但我不确定这是否完全符合您的要求,如果摄取的数据量很高,也可能存在缩放和性能问号。