首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure事件中心-分区使用问题

Azure事件中心-分区使用问题
EN

Stack Overflow用户
提问于 2021-07-19 18:54:11
回答 1查看 997关注 0票数 1

我是Azure事件中心的新手,我很难理解分区。

我有以下情况:

  • 1个事件中心名称空间
  • 1个实际事件中心
  • 事件中心中的2个分区
  • 2消费者团体
  • 1个事件生产者
  • 2个事件消费者,每个消费者组1个

事件生成器向事件中心发送10个事件。事件通过循环机制被分发到分区。所以事件中心看起来是这样的:

代码语言:javascript
复制
Partition 1: [0] [2] [5] [6] [8]
Partition 2: [1] [3] [4] [7] [9]

当事件使用者开始阅读时,每个消费者最终只会看到事件的一部分,如下所示:

代码语言:javascript
复制
Consumer 1: Gets events 0,2,5,6,8
Consumer 2: Gets events 1,3,4,7,9

消费者组只能访问分区的一个子集,这是真的吗?

我的假设是事件中心架构支持向多个使用者广播事件。每个消费者都想要所有的东西。但在我看来,事件中心并不是为了让所有的消费者都能得到所有的事件而设计的,但我不明白为什么这会有用。

有人能帮我理解分区吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-19 21:59:21

每个事件集线器分区都是对所有使用者可用的持久事件流,而不管它们与哪个使用者组关联。任何使用者都可以在事件流的任何点从任何分区读取数据。

分区用于帮助扩展资源,以支持更大程度的并发性,并提高事件中心的吞吐量。一般来说,使用的分区越多,事件集线器可以处理的并发操作就越多。更多信息可以在活动中心概览中找到。

我的假设是事件中心架构支持向多个使用者广播事件。

不完全是这样;消费者负责从事件集线器的分区中提取事件,它们不会被推送给使用者。任何具有权限的使用者都可以连接到分区并独立读取。事件一旦读取就不会被删除,它们在分区中存在,直到它们的时间超过保留期为止。

但在我看来,事件中心并不是为了让所有的消费者都得到所有的事件而设计的

那是不对的。事件集线器为希望读取事件的任何使用者公开事件。使用像事件集线器SDK中的EventProcessorClient这样的客户端,应用程序可以从所有分区消费,而不必单独管理每个分区使用者。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68445626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档