【问题标题】:Apache Storm with Kafka spout bottleneck具有 Kafka spout 瓶颈的 Apache Storm
【发布时间】:2016-11-12 10:06:43
【问题描述】:

我正在尝试通过我的 Storm 设置实现最大性能。我正在通过 Kafka 发送数万条消息,这些消息将被风暴拓扑接收。

当我查看 Storm UI 时,我注意到所有消息都发送到单个执行器,而不是在所有执行器之间进行负载平衡。 (见附件截图)。

任何原因以及我如何负载平衡 Kafka 消息?

Storm UI Screenshot

【问题讨论】:

  • 您需要提供有关您的 Storm 拓扑的更多信息,以及您如何通过 Storm 的 Kafka spout 从 Kafka 读取数据。例如,您的 Kafka 输入主题有多少个分区?你的 Kafka spout 在 Storm 中的并行设置是什么?并且,在 spout 之后,您配置了哪些 bolt,以及您为这些 bolt 使用了哪些并行设置和流分组(如随机洗牌,这将有助于负载平衡)?
  • @miguno 我的风暴拓扑现在非常简单,它需要 kafka spout 并将其发送到 Hbase 进行持久化。我创建的主题有 3 个分区,并行度为 3。拓扑也共有 3 个工作人员。我正在使用的 Hbase 的 Bolt 的并行提示为 10,并且正在使用随机分组。
  • 你能用并行度测试它吗 1. 它说什么?
  • KafkaSpout 可以拥有的最大并行度是分区数。 stackoverflow.com/questions/18267834/… 的可能重复项

标签: apache-kafka apache-storm


【解决方案1】:

由于您有 3 个分区,请尝试创建并行提示为 3 的 Kafka Spout 和并行提示为 3 的 HBase Bolt。在 HBase Bolt 中使用 Partial Key grouping 来根据 key 对 Bolt 之间的消息进行负载均衡。

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 2018-09-19
    • 2019-03-14
    • 2019-05-04
    • 1970-01-01
    • 2015-03-13
    • 2017-08-24
    • 2013-06-24
    • 1970-01-01
    相关资源
    最近更新 更多