【问题标题】:Is Event Hub's intended to be used for Event Sourcing / append-only log architectures事件中心是否旨在用于事件溯源/仅附加日志架构
【发布时间】:2019-01-29 08:59:16
【问题描述】:

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

【问题讨论】:

    标签: azure-eventhub transaction-log azure-eventhub-capture


    【解决方案1】:

    好问题!

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

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

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

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

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

    如果您认为,您会遇到这样的情况,您必须及时返回 >7 天以重建快照(例如:用于调试 - 这通常不是 99% 的情况 - 但是,同意为此设计和适应是非常明智的),推荐的方法是将数据推送到存档存储。

    当我们的usage Metrics 表明我们的许多客户都有一个EventHubs consumer group 专用于将数据推送到存档存储时 - 我们希望启用此功能开箱即用,然后开始提供 - Event Hubs Capture feature

    More on Event Hubs.

    【讨论】:

    • 这个 Sreeram 有什么例子吗?我希望看到使用事件中心实现事件溯源。
    【解决方案2】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2021-12-23
    • 2018-09-23
    • 2017-12-12
    • 1970-01-01
    相关资源
    最近更新 更多