2016-11-21 57 views
0

我們有一個拓撲有多個卡夫卡噴口任務。每個噴口任務都應該讀取來自一組Kafka主題的消息子集。主題必須使用AAA.BBB *等通配符來訂閱。預期的行爲將是所有噴嘴任務共同消耗所有與通配符匹配的主題中的所有消息。每條消息僅被路由到單個噴口任務(忽略故障情況)。目前是否支持?Apache Storm:支持卡夫卡噴嘴中的主題通配符

回答

0

也許你可以使用DynamicBrokersReader類。

Map conf = new HashMap(); 
... 
conf.put("kafka.topic.wildcard.match", true); 

wildCardBrokerReader = new DynamicBrokersReader(conf, connectionString, masterPath, "AAA.BBB.*"); 
List<GlobalPartitionInformation> partitions = wildCardBrokerReader.getBrokerInfo(); 
... 
for (GlobalPartitionInformation eachTopic: partitions) { 
    StaticHosts hosts = new StaticHosts(eachTopic); 
    SpoutConfig spoutConfig = new SpoutConfig(hosts, eachTopic.topic, zkRoot, id); 
    KafkaSpout spout = new KafkaSpout(spoutConfig); 
} 
... // Wrap those created spout instances into a container 
+0

感謝您的回答,但這是否意味着卡夫卡鯨魚噴壺不支持? – user3612009

+0

卡夫卡高級消費者可以採用Whiltelist來實現通配話題消費,但是低級消費者不能這樣做。 KafkaSpout實際上是一個低級消費者,因此不提供直接支持。 – amethystic