【发布时间】:2016-08-30 18:54:02
【问题描述】:
我有一个接受来自多个 Kafka 主题的消息的 Apache Storm 拓扑。
目前“多”等于“二”。
由于我目前只有两个 KafkaSpouts 可以收听,因此我已将它们硬编码到我的 Topology 类中,并编码如下:-
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);
然而 KafkaSpout 的数量会随着时间的推移而增加,每个新的 KafkaSpout 都会听自己独特的主题。每次出现新主题时,我都必须对我的拓扑进行代码更改并重新部署它。
我更希望我的拓扑由外部配置“机制”控制,例如磁盘文件或数据库表。通过添加(或删除)Kafka 主题详细信息,我希望我的拓扑开始(或停止)“监听”这些主题。
Apache Storm 是否支持这种类型的动态配置?
【问题讨论】:
标签: configuration apache-kafka apache-storm