我有一个包含喷口/螺栓的风暴拓扑。有一些特定于特定喷口和特定螺栓的配置数据我想使用(即从配置文件读取),这样就不会硬编码。配置数据的例子有一个文件名,喷口要从中读取,而螺栓要向其中写入。我认为配置数据被传递到open和prepare方法中。如何合并配置文件中特定于组件的数据?
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);
1条答案
按热度按时间agyaoht71#
至少有两种方法:
1) 在storm config中包含特定于应用程序的配置,该配置将在ibolt.prepare()ispout.open()方法调用期间可用。您可以使用的一种策略是为配置键设置应用程序前缀,以避免潜在的冲突。
2) 在喷口/螺栓施工期间包括组件配置。