在之前的博客中记录,如何在项目storm中把每条记录作为消息发送到kafka消息队列中的。这里讲述如何在storm中消费kafka队列中的消息。为何在项目中两个拓扑文件校验和预处理之间要用kafka消息队列进行数据的暂存仍需要去落实。
项目中直接使用storm提供的kafkaSpout作为消息队列的消费者。实现spout从kafka消息队列获取数据,作为拓扑的数据源。
package com.lancy.topology;
import java.util.Arrays;
import org.apache.storm.Config;
import org.apache.storm.LocalCluster;
import org.apache.storm.StormSubmitter;
import org.apache.storm.generated.AlreadyAliveException;
import org.apache.storm.generated.AuthorizationException;
import org.apache.storm.generated.InvalidTopologyException;
import org.apache.storm.kafka.BrokerHosts;
import org.apache.storm.kafka.KafkaSpout;
import org.apache.storm.kafka.SpoutConfig;
import org.apache.storm<