Как настроить общие параметры в Storm Flux - PullRequest
0 голосов
/ 29 мая 2018

Я новичок в Storm Flux, и теперь растерялся из-за того, как настроить общие параметры в Storm Flux.Например, org.apache.storm.kafka.spourt.KafkaSpout определяется следующим образом:

 public class KafkaSpout<K, V> extends BaseRichSpout {

    ....

 }

И есть пример файла YAML с использованием этого класса:

  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"

Myвопрос в том, почему нет никакой конфигурации для общих параметров KafkaSpout?

Спасибо!

1 Ответ

0 голосов
/ 29 мая 2018

Я не думаю, что кто-то счел необходимым реализовать поддержку обобщений во Flux.

Напомним, что в Java вы можете свободно использовать «необработанные типы» (хотя обычно это плохая идея), то есть вы можете делать new ArrayList(), и все будет так, как вы написали new ArrayList<Object>().Обобщения могут помочь вам более точно определить, какие типы вы хотите поместить в список, и позволить вам обнаруживать ошибки типов во время компиляции.

Flux больше похож на интерпретируемый язык, в котором вы должны представить свою топологию вFlux, чтобы знать, действителен ли ваш yaml.Дженерики тогда не имели бы особого смысла, особенно потому, что Flux довольно либерален и с принуждением типов.

...