【问题标题】:How do I remove events from Eventhub如何从 Eventhub 中删除事件
【发布时间】:2019-02-19 23:49:20
【问题描述】:

我可能对应该如何使用 EventHubs 感到困惑,或者需要有关如何可靠地处理发布到 EventHub 中的事件的指导。我将 Azure ActivityLog 导出到 Eventhub,目前只使用控制台应用程序来读取这些消息。我不明白我应该如何处理我已经阅读和处理过的事件。假设我想将所有消息的内容写入存储帐户 AppendLog。为此,我需要删除我已经处理过的消息(就像它是消息队列一样),我该如何使用 eventthub 来做到这一点?

【问题讨论】:

    标签: azure azure-eventhub


    【解决方案1】:

    您无法删除它们。来自the docs

    事件中心在配置的保留时间内保留数据,该保留时间适用于事件中心中的所有分区。事件按时间到期;您不能明确删除它们。

    回到你的问题:

    假设我想将所有消息的内容写入存储帐户 AppendLog。 为此,我需要删除我已经处理过的消息

    我不确定你为什么需要这个。您可以保留指向上次阅读消息的指针,以便您只能处理新消息。为什么需要删除旧的?您可以阅读有关偏移量和检查点的信息here

    您使用什么技术来阅读这些消息?

    【讨论】:

    • 假设我有一个需要对这些事件做出反应的函数,但由于某种原因该函数有一段时间没有运行。当我启动一个函数时,它只会对新事件做出反应,但我该如何处理积压呢?
    • 嗯,理想情况下,该函数应该使用检查点,这样当函数在停止后恢复工作时,它将在最后一次运行后继续使用最后一条消息 + 1。如果您使用 EventProcessorHost,您可以免费获得:docs.microsoft.com/en-us/azure/event-hubs/…。所以当我启动一个函数时,它只会对新事件做出反应只有在你不应用检查点时才适用。
    • 所以如果我使用 EventProcessorHost 即使它并不总是在运行,它会在通过 Function 实例化时跟踪最后处理的事件?
    • 当通过 Function 实例化时 我们在这里谈论的是 Azure Functions 吗?在这种情况下,根本不用担心,因为它已经跟踪了最后处理的事件,请参阅缩放部分中 the docs 的最后一条线。
    • 如果另一个解决方案读取同一个集线器,该指针会发生什么情况?例如,我通过 Logic App 订阅它。这个指针是每个消费者组名称还是应用程序?
    【解决方案2】:

    如果您需要弹出消息的模式,则需要 Azure 服务总线中的队列或主题。 当您确认该消息时,它会从队列中弹出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多