在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生啥?
Posted
技术标签:
【中文标题】在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生啥?【英文标题】:What happens to events in event hub after stream analytics does it works and routes them to service bus?在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生什么? 【发布时间】:2020-09-07 17:22:24 【问题描述】:我有以下场景:
-
事件中心 (EH1) 配置了 7 天的保留策略。
生产者将事件发布到 EH1。
来自 EH1 的事件从流分析 (SA) 路由到服务总线(在 1 小时的时间窗口内执行某些计算之后),服务总线获取原始事件(作为消息)以及汇总计算。
假设在第 1 天的 24 小时内,生产者向 EH1 发布了 100 万个事件。
SA 启动并将原始事件和汇总计算(超过 1 小时的周期)路由到服务总线。
假设在第 1 天之后,接下来的 15 天没有事件推送到 EH1。
问题:
-
100 万个原始事件(从第 1 天开始)会在 EH1 中保留多长时间?
这 100 万个原始事件(从第 1 天开始)在第 2 天(第 1 小时后)到第 7 天是否仍然存在(因为保留策略为 7)?或者当 SA 处理完所有这些事件后,它们会在第 1 天后消失吗?如果两者都没有,还会发生什么?
我应该在 EH1 中查看哪些指标来证明 (1) 和 (2) 的答案是什么?
【问题讨论】:
【参考方案1】:首先,你应该先看看consumer group。
简而言之,当消费者(如任何用于从 eventthub 接收事件的应用程序或代码)读取事件时,它必须通过消费者组读取事件(我们在这里将其命名为 cg_1
)-> 然后为下一个时间,你再次从cg_1
读取事件,这些事件(你已经读取)将不会被再次读取。
但是如果你切换到另一个消费者组(比如你新创建一个名为cg_2
的消费者组),你可以再次读取所有数据(即使数据已经从cg_1
读取)。
所以对于你的问题:
#1: 由于您配置了 7 天的保留策略,因此事件(原始数据)将在 eventthub 中保留 7 天。如果事件已通过消费者组接收,则无法通过该消费者组再次接收。但是你可以使用另一个消费者组再次接收数据。
#2: 与问题 1 类似,原始事件将根据您配置的保留天数存储在 eventthub 中。
#没有这样的指标,但是你可以很容易地编写客户端代码,并创建一个新的消费者组,然后读取数据以检查它是否存在。
【讨论】:
以上是关于在流分析工作并将它们路由到服务总线之后,事件中心中的事件会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章