【问题标题】:Where is Azure Event Hub messages stored?Azure 事件中心消息存储在哪里?
【发布时间】:2016-02-22 05:53:08
【问题描述】:

我使用此RedDog 工具生成了一个 SAS 签名,并使用Events Hub API refs 成功向事件中心发送了一条消息。我知道它是成功的,因为我从端点收到了 201 Created 响应。

这个小小的成功带来了一个我无法找到答案的问题:

我去了 azure 门户,在任何地方都看不到我创建的消息。进一步阅读发现我需要创建一个存储帐户;我偶然发现了一些需要存储帐户凭据等的 C# 示例(EventProcessorHost)。

问题是,我可以使用任何 API 来保存数据吗?我不想使用 C# 工具。

如果我的方法有误,请纠正我,但我的目标是能够将遥测数据发布到 EventHub,保存数据并对其执行一些分析操作。遥测数据应该可以在 Azure 上查看。

【问题讨论】:

    标签: azure azure-storage azure-eventhub


    【解决方案1】:

    您无法直接访问用于 EventHub 消息的临时存储,但您可以编写一个持续从 EventHub 读取数据并将消息保存到 Azure Table 或 Azure Blob 的使用者。

    您会发现最接近自动持久化消息的方法(如 Amazon Kinesis Firehose 与 EventHubs 基本上等效的 Amazon Kinesis),将使用 Azure Streaming Analytics 配置为将输出写入 Azure Blob 或到 Azure 表。 This example 展示了如何设置流式分析作业来传递数据并将其存储在 SQL 中,但您可以看到可以选择 Azure Table 等选项的 UI。或者您可以从the output API 了解选项。

    当然,您应该了解导致this question 的序列化要求

    【讨论】:

    • 很好,谢谢。那真的很有帮助!我按照示例中的说明进行操作,使其适合我的用例。最后一个问题,除了我刚刚做的事情之外,EventProcessorHost 会做什么 - 发送事件,持久化它们,从数据库中读取持久化的值到我的应用程序中? src 代码不可用,所以我不能做太多挖掘。
    • EventProcessorHost 是一种工具,可以减轻处理跨不同盒子消耗多个分区的痛苦。 “消费”的含义因用例而异。我们有一个将事件保存到 AzureTable 的消费者,以及一个计算各种指标并采取各种其他操作的消费者(相同数据的)。基本上它允许其他 C# 代码访问消息并做任何事情。
    • 借助标准层事件中心,您现在可以让 Azure 自动将您的 EventHub 消息转发到 Azure 存储或 Azure Data Lake。他们称之为捕获。 [信息在这里。][1] 与流式分析作业不同,处理捕获的消息没有相关成本。当然,您必须支付存储费用。一旦你捕获了这些消息,没有任何机制可以随着时间的推移清理它们。 [1]:docs.microsoft.com/en-us/azure/event-hubs/…
    【解决方案2】:

    事件中心最多可存储 7 天的数据;这也是标准定价层。如果要将数据保留在存储帐户中更长时间,可以使用事件中心捕获功能。您无需编写任何代码即可实现此目的。您可以通过 Portal 或 ARM 模板对其进行配置。这在本文档中有所描述 - https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-capture-overview

    事件中心将其临时数据存储在 Azure 存储中。它没有提供有关数据存储的更多详细信息。从本文档中可以看出这一点 - https://docs.microsoft.com/en-us/azure/event-hubs/configure-customer-managed-key

    您需要的 EventProcessorHost 存储帐户仅用于检查点或维护分区中上次读取事件的偏移量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      相关资源
      最近更新 更多