Apache storm 如何在Storm Flux中配置通用参数
我是一个关于风暴流量的新手,现在对如何在风暴流量中配置通用参数感到困惑。例如,org.apache.storm.kafka.spourt.KafkaSpout的定义如下:Apache storm 如何在Storm Flux中配置通用参数,apache-storm,apache-storm-flux,Apache Storm,Apache Storm Flux,我是一个关于风暴流量的新手,现在对如何在风暴流量中配置通用参数感到困惑。例如,org.apache.storm.kafka.spourt.KafkaSpout的定义如下: public class KafkaSpout<K, V> extends BaseRichSpout { .... } 我的问题是,为什么卡夫卡普特的泛型并列词没有任何配置 谢谢 我认为还没有人发现有必要在Flux中实现泛型支持 回想一下,在Java中,您可以自由地使用“原始类型”(尽管这通常不
public class KafkaSpout<K, V> extends BaseRichSpout {
....
}
我的问题是,为什么卡夫卡普特的泛型并列词没有任何配置
谢谢 我认为还没有人发现有必要在Flux中实现泛型支持 回想一下,在Java中,您可以自由地使用“原始类型”(尽管这通常不是一个好主意),也就是说,您可以执行
新建ArrayList()
,这就像您编写的新建ArrayList()
。泛型可以帮助您更具体地指定要将哪些类型放入列表中,并允许您在编译时捕获类型错误
Flux更像是一种解释语言,因为您必须将拓扑提交给Flux才能知道yaml是否有效。那么泛型就没有什么意义了,特别是因为Flux在类型强制方面也非常自由。谢谢。那么,回到KafkaSpout,我可以说Flux在编译时会执行从KafkaSpout到KafkaSpout的默认类型强制吗?Flux只使用KafkaSpout而不使用泛型参数,即KafkaSpout()。
components:
- id: "onlyValueRecordTranslator"
className: "org.apache.storm.flux.examples.OnlyValueRecordTranslator"
- id: "spoutConfigBuilder"
className: "org.apache.storm.kafka.spout.KafkaSpoutConfig$Builder"
constructorArgs:
- "localhost:9092"
- ["myKafkaTopic"]
properties:
- name: "firstPollOffsetStrategy"
value: EARLIEST
- name: "recordTranslator"
ref: "onlyValueRecordTranslator"
configMethods:
- name: "setProp"
args:
- {
"key.deserializer" : "org.apache.kafka.common.serialization.StringDeserializer",
"value.deserializer": "org.apache.kafka.common.serialization.StringDeserializer"
}
- id: "spoutConfig"
className: "org.apache.storm.kafka.spout.KafkaSpoutConfig"
constructorArgs:
- ref: "spoutConfigBuilder"
config:
topology.workers: 1
# spout definitions
spouts:
- id: "kafka-spout"
className: "org.apache.storm.kafka.spout.KafkaSpout"
constructorArgs:
- ref: "spoutConfig"