maven配置依赖
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.9.0.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
测试代码
/**
*
* 测试kafka 比如往kafka里面放置消息,查看kafka里面是否有需要的消息。
* 注意:为了不影响真正的消费者,要设置自动提交为false,并且不要手动提交。
*/
public class KafkaTest {
@Test
public void testProducer() throws InterruptedException, ExecutionException {
Properties prop = initProp();
KafkaProducer<String, String> producer = new KafkaProducer<>(prop);
String value = "hello kafka";
ProducerRecord<String, String> record = new ProducerRecord<String, String>("topic-mytopic", value);
Future<RecordMetadata> f = producer.send(record);
RecordMetadata meta = f.get();
System.out.printf("produce %s %s", meta.offset(), meta.topic());
producer.close();
}
@Test
public void testComsumer() {
Properties prop = initProp();
try (KafkaConsumer<String, String> consumer = new KafkaConsumer<>(prop)) {
consumer.subscribe(Lists.newArrayList("topic-mytopic"));
consumer.seekToBeginning();
while (true) {
ConsumerRecords<String, String> recs = consumer.poll(10000);
recs.forEach(rec -> {
System.out.println();
System.out.printf("offset=%s, value=%s", rec.offset(), rec.value());
System.out.println();
});
// consumer.commitSync();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private Properties initProp() {
Properties prop = new Properties();
prop.setProperty("bootstrap.servers", "ip1:port,ip2:port,ip3:port");
prop.setProperty("group.id", "my-group");
prop.setProperty("enable.auto.commit", "false");
prop.setProperty("session.timeout.ms", "15000");
prop.setProperty("auto.offset.reset", "earliest");
prop.setProperty("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
prop.setProperty("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
prop.setProperty("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
prop.setProperty("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
prop.setProperty("value.deserializer.encoding", "UTF-8");
return prop;
}
}