我有一个 5 个节点的风暴集群和一个安装在相同节点上的 kafka 集群。

  • 风暴版:1.2.1

  • 卡夫卡版:1.1.0

我还有 10 个分区的 kafka 主题。

现在,我想要使用这个主题的数据并进行风暴处理。但消息消耗速度真的很奇怪。

出于测试原因,我的风暴拓扑只有一个组件 - kafka spout,我总是将 kafka spout 并行度设置为 10,这样一个分区只能由一个线程读取。

当我仅在1 工作人员上运行此拓扑时,所有分区将被快速读取并且滞后几乎为 same.(very 小)
当我在2 工作人员上运行此拓扑时,5 个分区将被快速读取,但其他5 个分区将被非常慢地读取。
当我在3 或 4 个工作人员上运行此拓扑时,7 个分区将被快速读取而其他3 个分区将被非常缓慢地读取。
当我在超过5 个工作人员上运行此拓扑时,将快速读取8 个分区**,并且将缓慢读取其他2 个分区

另一个奇怪的事情是,当我在配置 kafka spout 时使用不同的消费者群组 id 时,测试结果可能会有所不同。
例如,当我使用特定的组 ID 并在
5 worker上运行拓扑时,只能快速读取2 个分区**。与使用另一个组 ID 的测试相反。

我写了一个简单的 java 应用程序,调用 High-level kafka jave api。我在每个 5 个风暴节点上运行它,发现它可以非常快速地为每个分区消耗数据。因此可以排除网络问题。

有没有人遇到过同样的问题?或者有什么可能导致这种奇怪问题的想法?

谢谢!