生产者
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties;
public class ProducerAPI {
public static void main(String[] args) throws InterruptedException {
Properties prop = new Properties();
prop.setProperty("bootstrap.servers", "hadoop01:9092,hadoop02:9092,hadoop03:9092");
prop.setProperty("key.serializer", StringSerializer.class.getName());
prop.setProperty("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<String, String>(prop);
int i = 1;
while (i<1000){
int partitionNum = i%3;
ProducerRecord helloTopic = new ProducerRecord("helloTopic", partitionNum, "", "" + i);
System.out.println("record="+helloTopic);
producer.send(helloTopic);
Thread.sleep(1000);
i++;
}
producer.close();
System.out.println("end");
}
}
消费者
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Properties;
public class ConsumerAPI {
public static void main(String[] args) {
Properties prop = new Properties();
prop.setProperty("bootstrap.servers", "hadoop01:9092,hadoop02:9092,hadoop03:9092");
prop.setProperty("key.deserializer","org.apache.kafka.common.serialization.StringDeserializer");
prop.setProperty("value.deserializer","org.apache.kafka.common.serialization.StringDeserializer");
prop.setProperty("group.id", "day1001");
prop.setProperty("auto.offset.reset", "earliest");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(prop);
consumer.subscribe(Arrays.asList("helloTopic"));
while (true){
ConsumerRecords<String, String> poll = consumer.poll(2000);
Iterator<ConsumerRecord<String, String>> it = poll.iterator();
while (it.hasNext()){
ConsumerRecord<String, String> next = it.next();
System.out.println(next);
}
}
}
}