7

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

提前感谢,拉达。

4

2 回答 2

7

您无法从 Azure 事件中心删除消息,但我将提供几个替代方案。

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

将 EventHub 想象为存储在云上的持久事件流。您将需要维护从何处开始阅读的光标。没有其他办法。您需要检查点才能执行此操作。大多数消息传递用户与 EventHubs 中的主题语义混淆。这个现有的问题可以使这个方向变得清晰。

有关事件中心的更多信息...

于 2015-04-03T05:06:00.290 回答