50 lines
1.9 KiB
Java
50 lines
1.9 KiB
Java
package com.muyu.mqttmessage.consumer;
|
|
|
|
import com.muyu.mqttmessage.common.Test;
|
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
|
import org.apache.kafka.clients.consumer.KafkaConsumer;
|
|
import org.apache.kafka.common.TopicPartition;
|
|
import org.apache.kafka.common.serialization.StringDeserializer;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.kafka.core.ProducerFactory;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.time.Duration;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Properties;
|
|
|
|
/**
|
|
* @ClassName KafkaConsumers
|
|
* @Description 描述
|
|
* @Author Xin.Yao
|
|
* @Date 2024/6/9 上午9:54
|
|
*/
|
|
@Component
|
|
public class KafkaConsumers {
|
|
@Value("${spring.kafka.bootstrap-servers}")
|
|
private String bootstrapServers;
|
|
|
|
|
|
|
|
public KafkaConsumer kafkaConsumer(Test test){
|
|
Properties properties = new Properties();
|
|
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
|
|
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
|
|
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
|
|
// 指定分区策略
|
|
properties.put(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, "org.apache.kafka.clients.consumer.RoundRobinAssignor");
|
|
// 指定消费者组,必须参数
|
|
properties.put(ConsumerConfig.GROUP_ID_CONFIG, "test1");
|
|
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(properties);
|
|
// 订阅主题分区
|
|
List<TopicPartition> topicPartitions = new ArrayList<>();
|
|
topicPartitions.add(new TopicPartition("testKafka", test.getPartitions()));
|
|
consumer.assign(topicPartitions);
|
|
return consumer;
|
|
|
|
}
|
|
}
|