Kafka消费者 API(3)

1.需求:测试同一个主题的分区数据,只能由一个消费者组中的一个消费。

2.复制一份基础消费者的代码,在 IDEA 中同时启动,即可启动同一个消费者组中的两个消费者。由于GroupId都为test,所以3个消费者构成一组。

在IDEA里运行

3.运行异步发送随笔中的CustomProducerCallBack类代码

package com.kafka.producer;

import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.StringSerializer;

import java.util.Properties;

public class CustomProducerCallBack {
public static void main(String[] args) {
//配置
Properties properties = new Properties();
//连接集群
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "hadoop102:9092");
//指定对应的key和value序列化类型
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());

//创建Kafka生产者对象
KafkaProducer<String, String> kafkaProducer = new KafkaProducer<>(properties);
//发送数据
for (int i = 0; i < 500; i++) {
kafkaProducer.send(new ProducerRecord<>("first", "Kafka" + i), new Callback() {
@Override
public void onCompletion(RecordMetadata metadata, Exception exception) {
if (exception == null) {
System.out.println("主题:" + metadata.topic() + " 分区:" + metadata.partition());
}
}
});
}
//关闭资源
kafkaProducer.close();
}
}

查看消费者

一个消费者只能收到一个分区的消息

posted on 2022-05-21 14:41  hz15968199950  阅读(42)  评论(0)    收藏  举报