【问题标题】:Restart consumption from last checkpoint in EventHostProcessor从 EventHostProcessor 中的最后一个检查点重新开始消费
【发布时间】:2017-03-29 15:14:25
【问题描述】:

鉴于 EventHostProcessor 的实现,我如何强制重播来自同一处理器中最后一个检查点的事件?

为了清楚起见,假设我的分区深度为 100,并且我已经消费了 10 条消息。当我调用这个重播方法时,我希望onEvent 从我之前使用的 10 返回第一条消息。

在 C# 中,这似乎可以通过使用 Stopwatch 来实现,但我没有看到 Java 等效项。

【问题讨论】:

    标签: java azure azure-eventhub


    【解决方案1】:

    解决方案似乎是您可以检查点到上次使用的 EventData 的高水位线,也可以检查点到另一个 EventData 实例。

    context.checkpoint(data);

    似乎没有办法在 EventProcessorHost 中任意回退到较早的事件。

    【讨论】:

      【解决方案2】:

      简单的方法是使用Apache Commons Lang库的Java StopWatch类并按照教程Receive events from Azure Event Hubs using the .NET Framework中的C#代码用azure-event-hubs-java库在Java中编写相同的功能代码(在GitHub上hereEventProcessorHost here 的 maven 依赖项。

      希望对你有帮助。

      【讨论】:

      • 我不认为它是这样工作的。您引用的秒表与参考代码中的秒表不同。参考代码使用EH检查点秒表
      • 我看到了混乱。我对安排通话时间并不感兴趣。我有兴趣将检查点指针重置为前一个时间点。特别是到最后一个检查点。
      猜你喜欢
      • 1970-01-01
      • 2016-10-23
      • 2014-08-30
      • 2017-02-15
      • 2017-10-12
      • 2021-10-09
      • 1970-01-01
      • 2019-04-08
      • 2019-09-08
      相关资源
      最近更新 更多