Use Kafka to receive message code finishing at work

Some time ago, I used Kafka to receive messages at work, so let’s just sort it out:

Properties props = new Properties();
props.put("zookeeper.connect", zkServer);
props.put("group.id",groupId);
//Use zk cluster management
ConsumerConfig conf = new ConsumerConfig(props);
kafka.javaapi.consumer.ConsumerConnector consumer = kafka.consumer.Consumer.createJavaConsumerConnector(conf);
Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
topicCountMap.put (topicId, 1);
Map<String, List<KafkaStream<String, LogInfoBean>>> consumerMap =
consumer.createMessageStreams(topicCountMap,new StringDecoder(new VerifiableProperties()), new DiggerEventDecoder());
List<KafkaStream<String,LogInfoBean>> streams = consumerMap.get(topicId);
KafkaStream<String,LogInfoBean> stream = streams.get(0);
ConsumerIterator<String,LogInfoBean> it = stream.iterator();
// will block the thread when there is no message
while (it.hasNext()){
LogInfoBean msgBean = it.next().message();
String logMessage = msgBean.getMsg();
// process the received message
//...
}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326390051&siteId=291194637