Apache Storm 中字段 class 的用途是什么

What is the purpose of Fields class in Apache Storm

我正在查看 Apache Storm 的示例之一。 以下是 Bolt class
的片段 public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(新字段("word"));
}

Declarer 用于表示 Bolt 将发出的字段类型。那么上面的语法在说“ new Fields("word") ”时是什么意思。

它定义了输出元组的模式。即,一个元组有多少个属性以及每个属性的名称。

Fields("word") 定义了一个具有名为 word 的单个属性的模式。因此,如果调用 collector.emit(new Values(...)),参数列表必须包含单个值。

在接收方(即消耗输出流的螺栓),您可以通过索引或名称访问属性;该名称是生产者通过 Fields 声明的名称。

在您的示例中,消费者可以通过 input.getX(0)input.getXByName("word") 访问属性。