如何在没有任何检查点的情况下使用 Azure 事件中心?

问题描述 投票:0回答:1

我想通过 Azure 事件中心发布事件。例如股票报价。我有一个应用程序有兴趣使用每个股票代码最后消耗的报价。我对超过 5 分钟的引言不感兴趣。

我的计划是在内存中拥有一个消费者(单例)并将其注入到我需要报价的地方。然后,我的应用程序的每个实例都将读取所有事件,启动 5 分钟前的流并跟踪每个符号的最后一个报价。我想使用 SDK 中的

EventProcessorClient
之类的东西。但是,这需要 BlobContainerClient 来存储检查点信息。我不需要检查点,我不希望我的应用程序的不同实例声明分区的所有权,我希望所有实例都接收所有消息。

所以我现在有了一个带有自定义

PluggableCheckpointStoreEventProcessor
和内存中 CheckpointStore 的解决方案,但这感觉好像我做错了。有没有更简单的方法?

c# .net azure azure-eventhub
1个回答
0
投票

这个的简短版本是“不要在您的应用程序中编写检查点,那么您将没有检查点。”

扩展一下,处理器要求您提供一个检查点存储,可用于处理器实例之间的协调,以共享检查点的工作和存储。 如果您没有支持处理器的通用持久存储并且您尝试使用多个节点,它们将不会协调并且会争夺分区的控制权。

仅当应用程序明确要求检查点时才会写入检查点。 没有代表您创建隐式检查点。 如果您不想使用检查点,只需避免调用

UpdateCheckpointAsync
,这样就不存在检查点了。

© www.soinside.com 2019 - 2024. All rights reserved.