【问题标题】:Azure EventHub - How to remove the event?Azure EventHub - 如何删除事件?
【发布时间】:2014-11-06 13:39:15
【问题描述】:

一如既往,感谢您的帮助,因为我目前陷入困境!!!

我们有一个新项目,我们将使用 Azure EventHub。我创建了演示应用程序,我们可以在其中将事件添加到事件中心,也可以使用 IEventProcessor(Receiver 项目)在其中使用它们。问题是,每次执行接收器项目时,我都会看到相同的事件。难道我们不应该期望这些事件在我们使用它们之后会被删除吗?

Receiver 项目中的示例:

foreach (EventData eventData in messages)
{
        string data = Encoding.UTF8.GetString(eventData.GetBytes());

        Console.WriteLine(string.Format("Message received.  Partition: '{0}', Data: '{1}'",
                context.Lease.PartitionId, data));
}

有没有办法在 Console.WriteLine 之后删除/删除事件,或者消息会保留一天?使用 Queues ,您可以发出完成信号,但使用 EventHub 是看不到任何命令,我可以使用它来删除/删除它。

任何回复将不胜感激。我们已被指示使用 EventHub,但出于 a-b 原因,这不是选择问题。

【问题讨论】:

  • 如何注册您的处理器?可以添加更多代码吗?您使用的是直接消费者还是 EventProcessorHost?

标签: c# azure asynchronous azure-eventhub


【解决方案1】:

确保在退出 ProcessEventsAsync 之前调用 context.CheckpointAsync。这将存储分区的客户端偏移量,并且分配该分区的下一个处理器实例将从上次存储的偏移量恢复。

请参阅 http://msdn.microsoft.com/en-us/library/dn751578.aspx 获取文档(但信息不多)。

【讨论】:

    【解决方案2】:

    您应该使用检查点并保存分区的偏移量。 AFAIK 无法从 eventthub 中删除事件。事件保留天数后,它将自动从 eventthub 中删除。但我也看到我们将收到已完成保留天数的邮件。

    https://social.msdn.microsoft.com/Forums/windows/en-US/93b1bf18-2229-4da8-994f-ddc7c675f62f/message-retention-day-not-working?forum=servbus

    所以我相信当您达到空间配额时它们会自动删除,或者它会像计划任务一样,但不确定。

    【讨论】:

      【解决方案3】:

      Azure 事件中心中的事件在缓冲定义的保留期后将被删除。您可以将保留天数设置为 1-7 天。无需手动删除它们。

      【讨论】:

      • 我认为这根本不能回答问题。虽然事件确实会消失,但更重要的是如何防止它们在演示应用的连续执行中被多次处理
      【解决方案4】:

      除了所有其他答案之外,还有一个令人困惑的地方:EventHub 可能不会删除超过保留期长达 30 天的消息。这取决于集线器上的负载。

      例如保留期为 1 天,但如果邮件很少,则可以保留更长的时间。

      幸运的是,他们没有被计费。

      【讨论】:

        【解决方案5】:

        使用事件中心的最佳选择是 EventProcessorHost 框架。 它使您可以检查已阅读的任何消息。为此,它存储(在 blob 存储中)最后一个检查点消息的索引,以便在关闭的情况下恢复处理。

        https://blogs.msdn.microsoft.com/servicebus/2015/01/16/event-processor-host-best-practices-part-1/

        您可能还需要一个用于开发目的的存储模拟器,但如果您有 Azure 帐户,则可以使用远程 blob 存储。

        https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-04-26
          • 1970-01-01
          • 2014-11-07
          • 2021-07-17
          • 1970-01-01
          • 2019-03-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多