【问题标题】:Storing application events in Azure Event hub在 Azure 事件中心中存储应用程序事件
【发布时间】:2021-03-08 17:42:09
【问题描述】:

在我们的应用程序中,我们为任何副作用创建事件,并愿意将它们同步到存储以进行分析。

我正在考虑使用 Azure 事件中心,但是当我查看 sample code 和 SDK 时,只支持批量发送。我可能会使用批量生产,但在许多情况下,我需要一次发送一个事件。这让我想知道这是否是正确使用的服务。

对于那些对代码感兴趣的人,请在下面找到。

    public class CustomerCreatedEvent : EventRecord<Customer, Guid>
    {
        public CustomerCreatedEvent(Customer entity)
            : base(entity)
        {
        }

        public Customer Entity => _member;
    }

我为应用程序中的每个副作用设置了事件。本质上,这些事件将同步到一个事件源,该事件源将为 azure 数据湖存储和 BI 和分析提供数据。

Azure 事件中心是实现此目的的正确选择吗?除此之外,它使用 avro 格式,可以捕获到数据湖存储 gen2,但需要转换为 parquet 以便 snaype 可以查询。那部分,我将做一个 azure 数据工厂服务。

你能详细说明一下吗?

谢谢。

【问题讨论】:

    标签: .net azure events streaming azure-eventhub


    【解决方案1】:

    您提供的示例代码使用的是最新的 Eventhub 包:Azure.Messaging.EventHubs。它不提供发送单个事件的方法(除非将一个事件作为列表发送)以提高性能和吞吐量。

    您可以参考the similar issue了解更多详情。

    顺便说一下,旧包(Microsoft.Azure.EventHubs)支持,但不建议使用。

    【讨论】:

    • 感谢您的回复。我的应用程序为每个请求生成单个事件。 (主要)它是一个 Web 应用程序,我想发送单个事件。那么事件中心是不是一个正确的选择?
    • .@DarthVader,是的,但只需要发送一个列表
    猜你喜欢
    • 2019-03-23
    • 1970-01-01
    • 2016-02-22
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多