【Java Web】Spring整合Kafka

  • 引入依赖
    • spring-kafka
  • 配置Kafka
    • 配置server/consumer
  • 访问Kafka
    • 生产者
      • kafkaTemplate.send(topic,data)
    • 消费者
      • @KafkaListenner(topics={"test"})
      • public void handleMessage(ConsumerRecord record) { }

application.properties配置:

java 复制代码
# kafka
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=community-consumer-group
spring.kafka.consumer.enable-auto-commit=true
spring.kafka.consumer.auto-commit-interval=3000

测试代码:

java 复制代码
package com.nowcoder.community;

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Component;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class KafkaTests {

    @Autowired
    private KafkaProducer kafkaProducer;
    @Test
    public void testKafka(){
        kafkaProducer.sendMessage("test","你好");
        kafkaProducer.sendMessage("test","兄弟");

        try {
            Thread.sleep(1000*10);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
}

@Component
class KafkaProducer{

    @Autowired
    private KafkaTemplate kafkaTemplate;

    public void sendMessage(String topic, String content){
        kafkaTemplate.send(topic, content);
    }
}

@Component
class KafkaConsumer{

    @KafkaListener(topics = {"test"})
    public void handleMessage(ConsumerRecord record){
        System.out.println(record.value());
    }
}
相关推荐
We་ct1 分钟前
LeetCode 50. Pow(x, n):从暴力法到快速幂的优化之路
开发语言·前端·javascript·算法·leetcode·typescript·
如来神掌十八式2 分钟前
nginx + spring gateway+spring 服务_nginx 转发到 gateway
nginx·spring·gateway
柠檬味的Cat4 分钟前
使用腾讯云COS作为WordPress图床的实践
前端·github·腾讯云
潇洒畅想6 分钟前
1.1 从∑到∫:用循环理解求和与累积
java·数据结构·python·算法
Hilaku6 分钟前
卷AI、卷算法、2026 年的前端工程师到底在卷什么?
前端·javascript·面试
非凡ghost8 分钟前
AIMP(音乐播放软件)
前端·windows·音视频·firefox
xiaotao13110 分钟前
Vite 完全学习指南
前端·vite·前端打包
军军君0124 分钟前
Three.js基础功能学习十五:智能黑板实现实例二
开发语言·前端·javascript·vue.js·3d·threejs·三维
维齐洛波奇特利(male)27 分钟前
@Pointcut(“execution(* com.hdzx..*(..))“)切入点与aop 导致无限循环
java·开发语言
色空大师28 分钟前
【日志文件配置详解】
java·logback·log4j2·日志