我们现在正在开发一个实现和使用 Azure Eventhub 的项目。我们使用事件处理器主机来处理来自 Eventhub 的数据。我们有 32 个分区分布在 3 个节点上,并且想知道事件处理器主机如何将分区分布和平衡到接收器/节点上——尤其是在使用分区键时。
我们目前有 4 个不同的客户(蓝色、橙色、紫色和浅蓝色),它们向我们发送不同大小的数据。如您所见,左侧的蓝色客户发送了大约。132k 串数据,而右边的浅蓝色客户只发送 28 个。我们的理论是,给定基于客户的分区键(颜色标识),我们会看到客户数据只会放在一个节点中。相反,我们可以看到数据以某种方式均匀分布在 3 个节点上,如下所示:
节点 1:
节点 2:
节点 3:
关于分区键的使用方式,我们是否有误解?从我们在文档中读到的内容来看,当我们不指定分区键时,将使用“循环”方法——但即使使用分区键,它也会以某种方式均匀分布它们。我们是否以某种方式对节点施加了压力——一个蓝色客户拥有大量数据,而另一个客户几乎一无所有?或者发生了什么?
那么我们是不是用蓝色客户强调顶部节点,最终必须将分区移动到中间节点?