gpt4 book ai didi

c# - Azure 事件中心 - 同一事件中心中的多种事件类型

转载 作者:太空狗 更新时间:2023-10-30 01:00:26 25 4
gpt4 key购买 nike

我已设置Azure 事件中心。有 2 个发布商:

  1. 发布商 1(使用发送策略)

  2. 发布商 2(使用发送策略)

发布商 1 将发送事件 1,发布商 2 将发送事件 2。事件 1 和事件 2 的格式不同。

问题 1:这意味着我们在 EH 中有不同的消息 - 这种方法的权衡是什么?我是否应该创建 2 个 EH(一个用于发布者 1,另一个用于发布者 2)?最佳实践和设计理念是什么?

如果我采用上述方法,我必须设置一个具有监听策略的消费者来查找这些事件并解析/转换这些事件并反序列化它们。

问题 2:我需要 2 个消费者(消费者 1 和消费者 2)来读取发送给他们的消息吗? (消费者 1 将仅读取事件 1,消费者 2 将仅读取事件 2)?

最佳答案

场景 1:一个事件中心适用于多种事件类型

在这种情况下,您在发送和处理消息时有多种选择:

  1. 只需将消息发送到事件中心即可。编写一个读取消息的消费进程,并根据类型对它们进行不同的处理。
  2. 只需将消息发送到事件中心即可。创建不同的消费者组,每个组对应一种消息类型。有两个进程都读取自己的消费者组并跳过它们没有资格处理的消息。 (每个消费者组本质上读取相同的数据,但它们可以位于数据流中的不同位置)。请参阅Azure event hubs and multiple consumer groups
  3. 将消息发送到指定分区。例如,将类型 A 的消息发送到分区 1,将类型 B 的消息发送到分区 2。但这可能会影响事件中心的可扩展性。每个(一组)分区创建专用进程。每个进程将只处理相同类型的消息。请参阅https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-programming-guide#partition-keyhttps://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-programming-guide#create-a-partition-sender

场景 2:每种事件类型一个事件中心

这个很简单,只需创建 2 个事件中心和 2 个消耗进程即可。但您必须管理 2 个事件中心,并且考虑到事件中心的功能,这可能有点过大了。

我的建议

这取决于数据量,但根据我的经验,我会将所有消息发送到一个事件中心,并让一个进程读取消息并使用一些 C# 代码根据消息类型执行操作。

关于c# - Azure 事件中心 - 同一事件中心中的多种事件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com