Kafka之JavaAPI

Producer:

package cn.lmr.kafka;

import java.util.Properties;
import kafka.javaapi.producer.Producer;
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;

public class ProducerDemo {

	public static void main(String[] args) {
		Properties props = new Properties();
		props.put("metadata.broker.list", "master:9092,slave1:9092");
		props.put("serializer.class", "kafka.serializer.StringEncoder");
		ProducerConfig config = new ProducerConfig(props);
		Producer producer = new Producer(config);
		for (int i = 1000; i <= 1100; i++)
			producer.send(new KeyedMessage("lin", "xiaoniu-msg" + i));
	}
}

Consumer:

package cn.lmr.kafka;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import kafka.consumer.Consumer;
import kafka.consumer.ConsumerConfig;
import kafka.consumer.KafkaStream;
import kafka.javaapi.consumer.ConsumerConnector;
import kafka.message.MessageAndMetadata;

public class ConsumerDemo {
	private static final String topic = "lin";
	private static final Integer threads = 2;

	public static void main(String[] args) {
		
		Properties props = new Properties();
		props.put("zookeeper.connect", "master:2181,slave1:2181");
		props.put("group.id", "vvvvv");
		//smallest重最开始消费,largest代表重消费者启动后产生的数据才消费
		//--from-beginning
		props.put("auto.offset.reset", "smallest");

		ConsumerConfig config = new ConsumerConfig(props);
		ConsumerConnector consumer =Consumer.createJavaConsumerConnector(config);
		Map topicCountMap = new HashMap();
		topicCountMap.put(topic, threads);
		Map>> consumerMap = consumer.createMessageStreams(topicCountMap);
		List> streams = consumerMap.get(topic);
		
		for(final KafkaStream kafkaStream : streams){
			new Thread(new Runnable() {
				public void run() {
					for(MessageAndMetadata mm : kafkaStream){
						String msg = new String(mm.message());
						System.out.println(msg);
					}
				}
			}).start();
		}
	}
}

 

你可能感兴趣的:(Kafka)