如何摆脱Azure EventHub中的旧邮件?

时间:2015-04-02 22:53:49

标签: azure azure-eventhub

当我们为特定类型订阅EventHub时。 我看到我的工作人员也在处理旧消息。 有没有办法摆脱事件中心中的旧消息或手动更改所需消息的分区偏移值? 截至目前,当工作人员重新启动Checkpoint不保存并且旧消息被重新处理时,我们的工作人员不会跟踪已处理的消息... 那么,任何人都可以分享摆脱这个问题的方法吗?

先谢谢, 拉达。

2 个答案:

答案 0 :(得分:3)

您无法从Azure事件中心删除邮件,但我将提供几种备选方案。

  1. 您可以缩短邮件保留期。默认情况下,您可以设置保留期以将消息保留在1-7天之间。如果它持有的数据多于相关数据,只需将其缩短即可。
  2. 进入Azure事件中心的每条消息都附加一个名为“EventEnqueuedUtcTime”的列/属性,表示它进入事件中心的时间。让您的程序订阅Event Hub。所有事件都将流入,但您可以在IF语句中编程,仅在指定时间后处理具有EventEnqueuedUtcTime的消息。请记住,此时间是托管命名空间的服务器时间,其时钟可能与测量时间。
  3. 在您的消息中附加您自己的时间戳,并使用此新属性/列执行第2步。

答案 1 :(得分:1)

想象一下EventHub是存储在云上的持久事件流。您将需要维护从哪里开始读取的Cursor。 没有其他方法。您需要checkpoint才能执行此操作。大多数Messaging用户都对EventHubs中的Topic语义感到困惑。这个existing question可以在这方面带来清晰度。

more on Event Hubs...