kafka代码demo

196 阅读1分钟

1.所需要添加maven依赖

<dependency>
	<groupId>org.apache.kafka</groupId>
	<artifactId>kafka_2.12</artifactId>
	<version>1.0.0</version>
	<scope>provided</scope>
</dependency>

2.java连接kafka示例

public static void main(String[] args) throws Exception {
	Properties props = new Properties();
	props.put("bootstrap.servers", "172.20.10.7:9092");
	props.put("acks", "all");
	props.put("retries", 0);
	props.put("batch.size", 16384);
	props.put("key.serializer", StringSerializer.class.getName());
	props.put("value.serializer", StringSerializer.class.getName());
	KafkaProducer<String, String> producer = new KafkaProducer<String, String>(props);
	for (int i = 0; i < 10000; i++) {
		producer.send(new ProducerRecord<String, String>("testA", "2223334sdddd","你好" + i));
	}
	producer.flush();

	System.out.println("=============消息发送完成=============");
	TimeUnit.SECONDS.sleep(5);

	props.put("key.deserializer", StringDeserializer.class.getName());
	props.put("value.deserializer", StringDeserializer.class.getName());
	props.put("group.id", "asdasdas"); //设置customerGroud
	props.put("max.poll.records", "20"); //设置一次获取消息条数
	KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
	consumer.subscribe(Arrays.asList("testA")); //设置监听主题,可以监听多个
	while (true) {
		ConsumerRecords<String, String> records = consumer.poll(10);
		System.out.println("获取消息条数为" + records.count());
		for (ConsumerRecord<String, String> record : records) {
			System.out.println("获取到消息" + record);
		}
		TimeUnit.SECONDS.sleep(1);
	}
}