6

事件中心不允许您存储超过 7(可能长达 30)天的消息。Azure 建议的具有这些限制的 PaaS 事件溯源架构是什么?如果是事件中心 + 快照,如果我们需要以某种方式重建该状态会发生什么?另外,Event Hub 是对 KSQL/Spark Azure 流分析的回答吗?

4

2 回答 2

8

好问题!

是的,EventHubs旨在用于Event SourcingAppend-only log模式。EventHubs 可用作SPARK等流处理和分析引擎的源/接收器,因此不是其竞争对手。通常,EventHubs 提供与 Apache Kafka 类似的功能。

是的,从仅附加日志中实现重建事务Snapshotting绝对是推荐的方法!

在将产品塑造EventHubs为产品时,我们为retentionPeriod- 分配默认值的考虑因素是 -

  • 大多数关键系统每隔几分钟就会创建一次快照。
  • 围绕此的大多数设计模式都建议保留旧快照以进行重建

因此,很明显我们不需要无限的日志,并且对于大多数用例来说,一天的时间限制就可以了。因此,我们从默认的 1 天开始 - 直到 7 天为止。

如果您认为,您将有一个案例,您将不得不及时返回 > 7 天以重建快照(例如:用于调试 - 这通常不是 99% 的场景 - 但是,同意设计和容纳因为这是非常明智的),推荐的方法是将数据推送到存档存储。

当我们usage Metrics展示我们的许多客户有一个EventHubs consumer group专门用于将数据推送到存档存储时 - 我们希望启用此功能开箱即用然后开始提供 -事件中心捕获功能

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

于 2018-08-24T17:44:40.380 回答
5

事件中心应该用于在数据存储实例之间移动事件时临时存储事件。您必须将它们加载到一些永久存储中以无限期使用,例如 Cosmos DB。

KSQL 在某种程度上可与 Azure 流分析相媲美。Spark 是一个更广泛的产品,但您可以使用 Spark 来处理事件中心数据。

PS我不是微软的官方发言人,所以这只是我的观点。

于 2018-08-23T06:33:46.583 回答