【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);
    }
}
相关推荐
Linux运维技术栈几秒前
Gravitee Kafka Gateway 规范部署:HTTP API化封装与安全隔离实践
http·kafka·gateway
小马爱打代码2 分钟前
Kafka:为什么分区是高并发的关键?
kafka·分区
傻啦嘿哟4 分钟前
实战:爬虫数据实时流处理——Kafka+Flink技术方案全解析
c#·linq
拾荒的小海螺4 分钟前
开源项目:Silky Starter 如丝般顺滑的 Spring Boot 组件生态
spring boot·后端·开源
计算机程序设计小李同学9 小时前
基于SpringBoot的个性化穿搭推荐及交流平台
java·spring boot·后端
aloha_78911 小时前
agent智能体学习(尚硅谷,小智医疗)
人工智能·spring boot·python·学习·java-ee
sanggou11 小时前
【实战总结】Spring Boot 后端接口防抖详解与实现方案(含注解 + Redis)
spring boot·后端
洛枫偃月16 小时前
SpringBoot3.5.x集成Nacos 2.x全流程详解
java·spring boot·后端
zhanjixun16 小时前
Spring Boot Maven项目构建Docker镜像
spring boot·docker·maven
晓131318 小时前
后端篇——第三章 JavaWeb-Springboot入门
java·spring boot