我需要一些帮助来弄清楚如何为 future 构建/优化我的 Azure 架构。
我目前正在运行一个测试,如下所示:
我目前正在发送某种数据 x1(每天 700k),如上图所示,“流分析”服务除了在数据库中提取数据而不进行任何聚合之外什么也不做或其他流程。
目前测试运行没有任何问题,但我担心将来可能会遇到困难,因为我想连接更多数据(x2,x3,...),这当然会增加发送的数据量。< br/>
现在我的问题是:
我很难弄清楚如何设置“事件中心”和“流分析”服务来处理不断增加的新数据量。
- 目前我有一个带有一个分区的“事件中心”。随着 future 数据量的增加,这是否足够,并且流分析服务是否仍然能够跟上处理的速度?
- 我应该为每种不同的数据类型(x1、x2...)创建一个单独的“事件中心”,还是应该创建一个具有多个分区的“事件中心”?
- 对于每种数据类型,都有一个具有多个分区的单独“事件中心”?
我很难理解分区的概念以及如何实现它们。
有没有人有类似的架构,可以给我一些建议。
提前谢谢
最佳答案
您可以将 Eventhub 分区视为多车道高速公路。 4 车道高速公路比 1 车道高速公路具有更高的吞吐量。单车道高速公路的唯一好处是处理将按顺序进行 (FIFO)。但如果这不是强制/要求,您应该将分区设置为 max(32),以充分利用 eventhub 流式摄取的功能。如果发布者没有将消息定向到特定分区,Eventhub 会自动将消息分发到不同的分区。您可以找到有关分区的信息here .
考虑到 eventhub future 可扩展性的另一个选项是将 eventhub 的吞吐量设置为自动缩放 Link最小/最大值之间。例如1TU-4TU。
同样,您可以将流分析设置为自动缩放 Link .
流分析可以并行处理每个 eventhub 分区,更多分区可以提高并行度。作业可以使用的流单元数量还取决于最大可能的并行度。例如,1 个分区 eventhub 最多只允许 6 个流单元。 2 个分区将允许 12 个流单元。进行容量估计并从合理的分区计数开始会更好,以满足 future 的扩展需求。
关于Azure 事件中心 - 流分析架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74833044/