我有一个apachestorm拓扑,它接受来自多个kafka主题的消息。
目前,“多个”等同于“两个”。
因为我现在只有两个kafkaspouts要听,所以我将它们硬编码到我的拓扑类中,并编码为follows:-
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);
然而随着时间的推移,Kafka普特的数量会增加,每一个新的Kafka普特都会聆听自己独特的主题。每次出现新主题时,我都必须对拓扑结构实现代码更改并重新部署它。
我更希望我的拓扑由外部配置“机制”控制,比如磁盘文件或数据库表。通过添加(或删除)Kafka主题的细节,我希望我的拓扑开始(或停止)“听”这些主题。
apachestorm支持这种动态配置吗?
1条答案
按热度按时间q5iwbnjs1#
apachestorm目前不支持动态更改拓扑配置。作为jstorm的一部分,有一个开放的jira项目需要支持。请参见链接:https://issues.apache.org/jira/browse/storm-1335