【发布时间】:2019-11-28 10:18:22
【问题描述】:
Azure 事件中心使用docs 中描述的分区使用者模式。 当涉及到现实世界的场景时,我在理解这个模型的消费者方面时遇到了一些问题。
假设我有 1000 条消息发送到具有 4 个分区的事件中心,没有定义任何分区 ID。这意味着消息将使用循环方法发送到所有分区。
现在我想让两个应用程序将消息分发到两个不同的数据库。我的问题是:
- 假设对于第一个应用程序,我想将所有消息存储在数据库 1 中。这意味着,为了获得最大速度,在我的消费者应用程序中,我需要有 4 个线程(消费者),每个线程都侦听事件中心的一个分区, 对?他们每个人还必须为正在读取的分区(检查点)存储自己的偏移量。
- 假设我的第二个应用程序想要过滤消息并仅将其中的一部分存储在数据库 2 中。我还需要 4 个消费者,因为我不知道哪个消息进入哪个分区,对吧?
- 对于这两个应用程序,我还需要有两个消费者组,但为什么呢?消息的过滤是否定义在消费者组中?我不明白为什么我需要这个,因为应用程序消费者自己存储分区检查点,我可以在应用程序本身内进行过滤。
我知道有 EventProcessorHost 类,但我想在较低级别上了解 EventHub 的概念。
【问题讨论】:
标签: azure bigdata cloud iot azure-eventhub