如何合并storm组件特定的配置数据?

hivapdat  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(290)

我有一个包含喷口/螺栓的风暴拓扑。有一些特定于特定喷口和特定螺栓的配置数据我想使用(即从配置文件读取),这样就不会硬编码。配置数据的例子有一个文件名,喷口要从中读取,而螺栓要向其中写入。我认为配置数据被传递到open和prepare方法中。
如何合并配置文件中特定于组件的数据?

agyaoht7

agyaoht71#

至少有两种方法:
1) 在storm config中包含特定于应用程序的配置,该配置将在ibolt.prepare()ispout.open()方法调用期间可用。您可以使用的一种策略是为配置键设置应用程序前缀,以避免潜在的冲突。

Config conf = new backtype.storm.Config();    
// Storm-specific configuration
// ...
// ..
// .

conf.put("my.application.configuration.foo", "foo");
conf.put("my.application.configuration.bar", "foo");

StormSubmitter.submitTopology(topologyName, conf, topology);

2) 在喷口/螺栓施工期间包括组件配置。

Properties properties = new java.util.Properties();
properties.load(new FileReader("config-file"));

BaseComponent bolt = new MyBoltImpl(properties);

相关问题