【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);
    }
}
相关推荐
cg501710 小时前
Spring Boot 的配置文件
java·linux·spring boot
IT成长日记10 小时前
【Kafka基础】Kafka工作原理解析
分布式·kafka
州周12 小时前
kafka副本同步时HW和LEO
分布式·kafka
橘猫云计算机设计13 小时前
基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·考研·django·毕业设计
程序媛学姐13 小时前
SpringKafka错误处理:重试机制与死信队列
java·开发语言·spring·kafka
有一只柴犬13 小时前
深入Spring AI:6大核心概念带你入门AI开发
spring boot·后端
向阳25614 小时前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
XiaoLeisj14 小时前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
风象南14 小时前
SpringBoot实现数据库读写分离的3种方案
java·spring boot·后端
CryptoPP15 小时前
springboot 对接马来西亚数据源API等多个国家的数据源
spring boot·后端·python·金融·区块链