Producer<String, String> producer = new KafkaProducer<>(props); for(int i = 0; i < 100; i++) { producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i))); }
producer.close(); }
@Test public void testKafkaConsumer() { Properties props = new Properties(); props.put("bootstrap.servers", "192.168.204.30:9092"); props.put("group.id", "test"); props.put("enable.auto.commit", "true"); props.put("auto.commit.interval.ms", "1000"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Arrays.asList("my-topic"));
while (true) { ConsumerRecords<String, String> records = consumer.poll(100); for (ConsumerRecord<String, String> record : records) System.out.printf("offset = %s, key = %s, value = %s%n", record.topic(), record.key(), record.value()); } }
public static void main(String[] args) { int a = 2; int b = 3; int sum = a*b; System.out.println(sum); }
}
在命令行上键入javap KafkaTest后,输出结果如下
1 2 3 4 5 6
public class com.thundersoft.metadata.test.kafka.KafkaTest { public com.thundersoft.metadata.test.kafka.KafkaTest(); public void testProducer(); public void testKafkaConsumer(); public static void main(java.lang.String[]); }
结合代码分析编译器执行过程
这里只关注main方法内部的代码逻辑,main方法代码如下
1 2 3 4 5 6
public static void main(String[] args) { int a = 2; int b = 3; int sum = a*b; System.out.println(sum); }