gpt4 book ai didi

apache-storm - Storm 场分组

转载 作者:行者123 更新时间:2023-12-04 05:29:09 27 4
gpt4 key购买 nike

我有以下情况:

  • 有许多 bolt 计算不同的值
  • 该值被发送到可视化 bolt
  • 可视化 bolt 打开一个网络套接字并发送值以某种方式可视化

  • 问题是,可视化 bolt 总是相同的,但它为可以作为其输入的每种类型的 bolt 发送带有不同标题的消息。例如:
  • BoltSum 计算总和
  • BoltDif 计算差异
  • BoltMul 计算倍数
  • 所有这些 bolt 都使用 VisualizationBolt 进行可视化
  • 在这种情况下,有 3 个 VisualizationBolt 实例

  • 我的问题是,我应该创建 3 个独立的实例,每个实例都有一个线程,例如
    builder.setBolt("forSum", new VisualizationBolt(),1).globalGrouping("bolt-sum");
    builder.setBolt("forDif", new VisualizationBolt(),1).globalGrouping("bolt-dif");
    builder.setBolt("forMul", new VisualizationBolt(),1).globalGrouping("bolt-mul");

    或者我应该做以下事情
    builder.setBolt("forAll", new VisualizationBolt(),3)
    .fieldsGrouping("forSum", new Fields("type"))
    .fieldsGrouping("forDif", new Fields("type"))
    .fieldsGrouping("forMul", new Fields("type"));

    并从前面的每个 bolt 发出类型,以便可以根据它对它们进行分组?

    有哪些优势?

    另外,我是否应该期望每次bolt-sum都会进入第一个可视化bolt,bolt-dif会进入第二个可视化bolt,bolt-mul会进入第三个可视化bolt?他们不会混吧?

    我认为应该是这样,但目前它不在我的实现中,所以我不确定这是一个错误还是我遗漏了什么?

    最佳答案

    使用三个实例的第一种方法是正确的方法。使用 fieldsGrouping 不是 确保“sum”值进入“Sum-Visualization-Bolt”,并且 sum/diff/mul 值都不是不同的(即,在不同的 bolt 实例中)。
    fieldGrouping的语义更轻松:它只保证相同类型的所有元组将由单个 bolt 实例处理,即永远不会出现这种情况,两个不同的 bolt 实例获得相同的类型。

    关于apache-storm - Storm 场分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33058988/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com