SpringBoot-Kafka

来源:互联网 发布:压力传感器和单片机 编辑:程序博客网 时间:2024/06/07 05:10
一.pom,至少要有<dependency>            <groupId>org.springframework.kafka</groupId>            <artifactId>spring-kafka</artifactId>        </dependency>为什么说至少,因为我现在的kafka是阿里云的服务,所以用自己的就只有这以为依赖,如果是aliyun的,还要依赖好几个ali的,ali的demo中有二.写一个配置类,不要忘记两个注解,还有,如果是aliyun的,在在这个类里自己写个构造函数,public KafkaConfiguration() {        if (System.getProperty("java.security.auth.login.config") == null) {            System.setProperty("java.security.auth.login.config", "ali的config文件路径,像:D:\\XX\\kafka_client_jaas.conf");        }    }然后按照ali的demo中,在这个类的consumerConfigs方法中加入ali的几个参数@Configuration@EnableKafkapublic class KafkaConsumerConfig {    @Bean    public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() {        ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();        factory.setConsumerFactory(consumerFactory());        //这里可以factory.set其他一些参数        return factory;    }    public ConsumerFactory<String, String> consumerFactory() {        return new DefaultKafkaConsumerFactory<>(consumerConfigs());    }    public Map<String, Object> consumerConfigs() {        Map<String, Object> propsMap = new HashMap<>();        propsMap.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "xx.xx.xx:端口号");        propsMap.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true);        propsMap.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, 100);        propsMap.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 6000);        propsMap.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);        propsMap.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);        propsMap.put(ConsumerConfig.GROUP_ID_CONFIG, "我们自己的消费者ID");        propsMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");        return propsMap;    }三.写一个消费者监听类@Componentpublic class HandlerMongo {    @KafkaListener(topics = { "你的TOPIC" })    public void processMessage(String content) {            System.out.println(content);    }}
原创粉丝点击