springboot整合kafka

文章目录

  • 步骤一:添加依赖项
  • 步骤二:配置 Kafka
  • 步骤三:创建一个生产者
  • 步骤四:创建一个消费者

本教程将介绍如何在 Spring Boot 应用程序中使用 Kafka。Kafka是一个分布式的发布-订阅消息系统,它可以处理大量数据并提供高吞吐量。 在本教程中,我们将使用 Spring Boot 2.7.2 和Kafka 2.8.1。

步骤一:添加依赖项

在 pom.xml 中添加以下依赖项:


    org.springframework.kafka
    spring-kafka
    2.8.1

步骤二:配置 Kafka

在 application.yml 文件中添加以下配置:

server:
  port: 8080
spring:
  kafka:
    bootstrap-servers: 192.168.79.104: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: 192.168.79.104
    port: 6379
    password: 123321
    lettuce:
      pool:
        max-active: 10
        max-idle: 10
        min-idle: 1
        time-between-eviction-runs: 10s

这里我们配置了 Kafka 的服务地址为 192.168.79.104:9092,配置了一个消费者组 ID 为 default-group。在生产者方面,我们配置了消息序列化程序为 StringSerializer。

步骤三:创建一个生产者

现在,我们将创建一个 Kafka 生产者,用于发送消息到 Kafka 服务器。在这里,我们将创建一个 RESTful 端点,用于接收 POST 请求并将消息发送到 Kafka。
首先,我们将创建一个 KafkaProducerConfig 类,用于配置 Kafka 生产者:

@Configuration
public class KafkaProducerConfig {
   

    @Value("${spring.kafka.bootstrap-servers}")
    private String bootstrapServers;

    @Bean
    public Map<String, Object> producerConfigs() {
   
        Map<String, Object> props = new HashMap<>();
        props

你可能感兴趣的:(kafka,spring,boot,java)