【Kafka】SpringBoot整合Kafka

1.引入依赖

XML 复制代码
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

2.配置参数

java 复制代码
server:
  port: 8080
spring:
  kafka:
    bootstrap-servers: 101.34.251.168:9092
    producer: # ⽣产者
      retries: 3 # 设置⼤于0的值,则客户端会将发送失败的记录重新发送
      batch-size: 16384
      buffer-memory: 33554432
      acks: 1
# 指定消息key和消息体的编解码⽅式
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    consumer:
      group-id: default-group
      enable-auto-commit: false
      auto-offset-reset: earliest
      key-deserializer:
        org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer:
        org.apache.kafka.common.serialization.StringDeserializer
      max-poll-records: 500
    listener:
  # 当每⼀条记录被消费者监听器(ListenerConsumer)处理之后提交
  # RECORD
  # 当每⼀批poll()的数据被消费者监听器(ListenerConsumer)处理之后提交
  # BATCH
  # 当每⼀批poll()的数据被消费者监听器(ListenerConsumer)处理之后,距离上次提交时间⼤于TIME时提交
  # TIME
  # 当每⼀批poll()的数据被消费者监听器(ListenerConsumer)处理之后,被处理record数量⼤于等于COUNT时提交
  # COUNT
  # TIME | COUNT 有⼀个条件满⾜时提交
  # COUNT_TIME
  # 当每⼀批poll()的数据被消费者监听器(ListenerConsumer)处理之后, ⼿动调⽤Acknowledgment.acknowledge()后提交
  # MANUAL
  # ⼿动调⽤Acknowledgment.acknowledge()后⽴即提交,⼀般使⽤这种
  # MANUAL_IMMEDIATE
      ack-mode: MANUAL_IMMEDIATE
#  redis:
#    host: 172.16.253.21

3.生产者搭建

java 复制代码
package com.wen.kafka.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("msg")
public class ProducerController {

    @Autowired
    private KafkaTemplate<String,String> kafkaTemplate;

    @RequestMapping("/send")
    public String sendMessage(){
        kafkaTemplate.send("test", "key", "msg2");
        return "Send Success";
    }

}

4.消费者搭建

java 复制代码
package com.wen.kafka.consumer;

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

@Component
public class Consumer {

    @KafkaListener(topics = "test", groupId = "GroupOne")
    public void listenGroup(ConsumerRecord<String, String> record){
        System.out.println(record);
    }
}
相关推荐
辰海Coding10 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
Maiko Star15 小时前
* SpringBoot整合LangChain4j
java·spring boot·后端·langchain4j
绝知此事16 小时前
【产品更名】通义灵码升级为 Qoder CN:AI 编码助手新时代,附大模型收费与 Spring Boot 支持全对比
人工智能·spring boot·后端·idea·ai编程
linmoo198616 小时前
Agent应用实践之四 - 基础:AgentScope-SpringBoot集成源码解析
人工智能·spring boot·agent·agentscope·openclaw
海兰17 小时前
【第21篇-续】graph-Stream-Node改造为适配openAI模型示例
java·人工智能·spring boot·spring·spring ai
Albert Edison17 小时前
基于 SpringBoot + RabbitMQ 完成企业级应用通信
spring boot·rabbitmq·java-rabbitmq
happymaker062619 小时前
Spring学习日记——DAY03(yml文件)
java·spring boot·spring
hikktn20 小时前
企业级Spring Boot应用管理:从零打造生产级启动脚本
java·spring boot·后端
霸道流氓气质20 小时前
Spring Boot + MyBatis-Plus 实现异常隔离的 Upsert 数据落库(含远程调用数据补全)
spring boot·后端·mybatis
不懂的浪漫20 小时前
01|从 Spring Boot 项目理解 RAG:ingest、query、rerank、trace 到 eval
java·人工智能·spring boot·后端·ai·rag