├── 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 |
--------------------------------------------------------------------------------