├── pom.xml └── src └── main └── java └── com └── spnotes └── kafka ├── HelloKafkaConsumer.java └── HelloKafkaProducer.java /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | HelloKafka 8 | HelloKafka 9 | 1.0-SNAPSHOT 10 | 11 | 12 | 13 | org.apache.kafka 14 | kafka_2.9.2 15 | 0.8.1.1 16 | compile 17 | 18 | 19 | jmxri 20 | com.sun.jmx 21 | 22 | 23 | jms 24 | javax.jms 25 | 26 | 27 | jmxtools 28 | com.sun.jdmk 29 | 30 | 31 | 32 | 33 | org.slf4j 34 | slf4j-log4j12 35 | 1.5.6 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/main/java/com/spnotes/kafka/HelloKafkaConsumer.java: -------------------------------------------------------------------------------- 1 | package com.spnotes.kafka; 2 | 3 | import kafka.api.FetchRequest; 4 | import kafka.api.FetchRequestBuilder; 5 | import kafka.api.FetchResponse; 6 | import kafka.consumer.Consumer; 7 | import kafka.consumer.ConsumerConfig; 8 | import kafka.consumer.ConsumerIterator; 9 | import kafka.consumer.KafkaStream; 10 | import kafka.javaapi.consumer.ConsumerConnector; 11 | import kafka.javaapi.consumer.SimpleConsumer; 12 | 13 | import java.nio.ByteBuffer; 14 | import java.util.*; 15 | 16 | import kafka.javaapi.message.ByteBufferMessageSet; 17 | import kafka.message.MessageAndOffset; 18 | import java.io.UnsupportedEncodingException; 19 | 20 | 21 | /** 22 | * Created by user on 8/4/14. 23 | */ 24 | public class HelloKafkaConsumer extends Thread { 25 | final static String clientId = "SimpleConsumerDemoClient"; 26 | final static String TOPIC = "pythontest"; 27 | ConsumerConnector consumerConnector; 28 | 29 | 30 | public static void main(String[] argv) throws UnsupportedEncodingException { 31 | HelloKafkaConsumer helloKafkaConsumer = new HelloKafkaConsumer(); 32 | helloKafkaConsumer.start(); 33 | 34 | } 35 | 36 | public HelloKafkaConsumer(){ 37 | Properties properties = new Properties(); 38 | properties.put("zookeeper.connect","localhost:2181"); 39 | properties.put("group.id","test-group"); 40 | ConsumerConfig consumerConfig = new ConsumerConfig(properties); 41 | consumerConnector = Consumer.createJavaConsumerConnector(consumerConfig); 42 | } 43 | 44 | @Override 45 | public void run() { 46 | Map topicCountMap = new HashMap(); 47 | topicCountMap.put(TOPIC, new Integer(1)); 48 | Map>> consumerMap = consumerConnector.createMessageStreams(topicCountMap); 49 | KafkaStream stream = consumerMap.get(TOPIC).get(0); 50 | ConsumerIterator it = stream.iterator(); 51 | while(it.hasNext()) 52 | System.out.println(new String(it.next().message())); 53 | 54 | } 55 | 56 | private static void printMessages(ByteBufferMessageSet messageSet) throws UnsupportedEncodingException { 57 | for(MessageAndOffset messageAndOffset: messageSet) { 58 | ByteBuffer payload = messageAndOffset.message().payload(); 59 | byte[] bytes = new byte[payload.limit()]; 60 | payload.get(bytes); 61 | System.out.println(new String(bytes, "UTF-8")); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/spnotes/kafka/HelloKafkaProducer.java: -------------------------------------------------------------------------------- 1 | package com.spnotes.kafka; 2 | 3 | import kafka.javaapi.producer.Producer; 4 | import kafka.producer.KeyedMessage; 5 | import kafka.producer.ProducerConfig; 6 | import scala.collection.Seq; 7 | 8 | import java.text.SimpleDateFormat; 9 | import java.util.Date; 10 | import java.util.Properties; 11 | 12 | /** 13 | * Created by user on 8/4/14. 14 | */ 15 | public class HelloKafkaProducer { 16 | final static String TOPIC = "pythontest"; 17 | 18 | 19 | public static void main(String[] argv){ 20 | Properties properties = new Properties(); 21 | properties.put("metadata.broker.list","localhost:9092"); 22 | properties.put("serializer.class","kafka.serializer.StringEncoder"); 23 | ProducerConfig producerConfig = new ProducerConfig(properties); 24 | kafka.javaapi.producer.Producer producer = new kafka.javaapi.producer.Producer(producerConfig); 25 | SimpleDateFormat sdf = new SimpleDateFormat(); 26 | KeyedMessage message =new KeyedMessage(TOPIC,"Test message from java program " + sdf.format(new Date())); 27 | producer.send(message); 28 | producer.close(); 29 | } 30 | } 31 | --------------------------------------------------------------------------------