2016-08-11 1 views
0

У меня есть топология Apache Storm, которая принимает сообщения из нескольких тем Kafka.Можете ли вы добавить/удалить KafkaSpouts для топологии топологии Apache Динамически

В настоящее время «множественный» означает «два».

Как я в настоящее время только два KafkaSpouts, чтобы слушать я жестко закодированы как в моем классе Топология и кодируется следующим образом: -

builder.setSpout(SPOUT_ONE_ID, kafkaSpout_A, 1); 
builder.setSpout(SPOUT_TWO_ID, kafkaSpout_B, 1); 
builder.setBolt(BOLT_ID, myBolt, 1).shuffleGrouping(SPOUT_ONE_ID).shuffleGrouping(SPOUT_TWO_ID); 

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

Я бы предпочел, чтобы моя топология контролировалась внешним механизмом конфигурации, подобным файлу диска или таблице базы данных. Добавляя (или удаляя) детали Кафки, я хотел бы, чтобы моя топология начала (или останавливала) «прослушивание» этих тем.

Поддерживает ли этот тип динамической конфигурации Apache Storm?

ответ