Professional Documents
Culture Documents
kafka;
import org.apache.avro.generic.GenericRecord;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.errors.WakeupException;
import com.google.gson.GsonBuilder;
import com.google.gson.internal.LinkedTreeMap;
import io.confluent.kafka.serializers.KafkaAvroDeserializer;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Properties;
/**
*
* @author HIRW (www.hadoopinrealworld.com)
* Kafka Consumer to fetch RSVP messages from Kafka
*
*/
while (true) {
//Poll with a max value to wait longer for message
availability in the topic
final ConsumerRecords<Integer, GenericRecord>
consumerRecords = consumer.poll(Long.MAX_VALUE);
GenericRecord r = record.value();
String json = r.get("rsvp").toString();
//consumer.commitSync();
//consumer.commitAsync();
}
} catch (WakeupException e) {
// ignore for shutdown
} finally {
consumer.close();
}
}
/*
* Utility function to parse the JSON object and fetch the needed information
from RSVP
*/
@SuppressWarnings("rawtypes")
private static String parseRSVP(String rsvp) {
GsonBuilder builder = new GsonBuilder();
Object o = builder.create().fromJson(rsvp, Object.class);
sb.append(new
BigDecimal(((LinkedTreeMap)o).get("rsvp_id").toString()).intValue()).append(",");
sb.append(new
BigDecimal(group.get("group_id").toString()).intValue()).append(",");
sb.append(group.get("group_name")).append(",");
sb.append(group.get("group_city")).append(",");
sb.append(group.get("group_country")).append(",");
sb.append(new
BigDecimal(member.get("member_id").toString()).intValue()).append(",");
sb.append(member.get("member_name")).append(",");
sb.append(event.get("event_id")).append(",");
sb.append(event.get("event_name"));
return sb.toString();
}
public static void main(String[] args) throws Exception {
runConsumer();
}