我有一个 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 个风暴节点上运行它,发现它可以非常快速地为每个分区消耗数据。因此可以排除网络问题。
有没有人遇到过同样的问题?或者有什么可能导致这种奇怪问题的想法?
谢谢!