在 Azure 事件中心存储应用程序事件
Storing application events in Azure Event hub
在我们的应用程序中,我们为任何副作用创建事件并愿意将它们同步到存储以供分析。
我正在考虑使用 Azure 事件中心,但当我查看 sample code 和 SDK 时,发现它仅支持批量发送。我可能会使用批量生产,但在很多情况下我需要一次发送一个事件。这让我想知道这是否是正确的服务。
对于那些对代码感兴趣的人可以在下面找到。
public class CustomerCreatedEvent : EventRecord<Customer, Guid>
{
public CustomerCreatedEvent(Customer entity)
: base(entity)
{
}
public Customer Entity => _member;
}
我在应用程序中为每个副作用设置了事件。从本质上讲,这些事件将同步到一个事件源,该事件源将为 BI 和分析提供 Azure 数据湖存储和 snyapse。
为此,Azure Event Hub 是正确的选择吗?除此之外,它使用可以捕获到 datalake 存储 gen2 的 avro 格式,但需要转换为 parquet,以便 snaype 可以查询。那部分,我将做一个 Azure 数据工厂服务。
能否详细说明一下?
谢谢。
您提供的示例代码使用的是最新的 Eventhub 包:Azure.Messaging.EventHubs
。它不提供发送单个事件(除非将事件作为列表发送)以提高性能和吞吐量的方法。
详情可参考
顺便说一句,旧包(Microsoft.Azure.EventHubs
)支持它,但我们不建议使用它。
在我们的应用程序中,我们为任何副作用创建事件并愿意将它们同步到存储以供分析。
我正在考虑使用 Azure 事件中心,但当我查看 sample code 和 SDK 时,发现它仅支持批量发送。我可能会使用批量生产,但在很多情况下我需要一次发送一个事件。这让我想知道这是否是正确的服务。
对于那些对代码感兴趣的人可以在下面找到。
public class CustomerCreatedEvent : EventRecord<Customer, Guid>
{
public CustomerCreatedEvent(Customer entity)
: base(entity)
{
}
public Customer Entity => _member;
}
我在应用程序中为每个副作用设置了事件。从本质上讲,这些事件将同步到一个事件源,该事件源将为 BI 和分析提供 Azure 数据湖存储和 snyapse。
为此,Azure Event Hub 是正确的选择吗?除此之外,它使用可以捕获到 datalake 存储 gen2 的 avro 格式,但需要转换为 parquet,以便 snaype 可以查询。那部分,我将做一个 Azure 数据工厂服务。
能否详细说明一下?
谢谢。
您提供的示例代码使用的是最新的 Eventhub 包:Azure.Messaging.EventHubs
。它不提供发送单个事件(除非将事件作为列表发送)以提高性能和吞吐量的方法。
详情可参考
顺便说一句,旧包(Microsoft.Azure.EventHubs
)支持它,但我们不建议使用它。