spring 整合kafka监听消费的配置过程

我来分步骤详细讲解下“spring 整合kafka监听消费的配置过程”的攻略。

引入Kafka依赖

pom.xml 中引入Kafka依赖,常用的包括 spring-kafkakafka-clients 等,具体如下:

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
    <version>2.5.2.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>2.4.2</version>
</dependency>

配置Kafka消费者监听

application.yml 中添加Kafka的配置:

spring:
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      group-id: gp-order
      auto-offset-reset: earliest
      max-poll-records: 100
      enable-auto-commit: true

其中:
- bootstrap-servers:Kafka集群地址,可以配置多个
- group-id:消费者组id,同一组内消费者共享同一份消息
- auto-offset-reset:消费者在没有初始偏移量或者当前偏移量不存在的情况下,该如何处理,earliest 为从最早的偏移量开始消费,latest 为只从最新的消息开始消费
- max-poll-records:每次拉取消息的数量,默认是 500
- enable-auto-commit:是否自动提交偏移量

编写消费者监听器

消费者监听器监听到kafka消息后需要完成具体的消费逻辑,代码示例如下:

@Component
public class OrderListener {

    @KafkaListener(topics = "order")
    public void consume(ConsumerRecord<String, String> record) {
        // 获取kafka消息key和value
        String key = record.key();
        String value = record.value();
        // do something...
    }
}

其中:
- @KafkaListener:注解用于标识这是一个消费者监听器,监听 order 主题下的消息
- ConsumerRecord:Kafka消息对象,包含消息key、value、分区信息等

示例一:监听字符串消息

以下示例展示如何实现监听字符串消息,代码示例:

@Component
public class StringListener {

    @KafkaListener(topics = "string-message")
    public void consume(String message) {
        System.out.println("接收到字符串消息:" + message);
        // do something...
    }
}

其中:
- @KafkaListener:注解用于标识这是一个消费者监听器,监听 string-message 主题下的消息
- String:监听方法的参数类型,表示接收到的是字符串消息

示例二:监听Java对象消息

以下示例展示如何实现监听Java对象消息,代码示例:

@Component
public class OrderListener {

    @KafkaListener(topics = "order")
    public void consume(OrderDto order) {
        System.out.println("接收到订单消息:" + order);
        // do something...
    }
}

其中:
- @KafkaListener:注解用于标识这是一个消费者监听器,监听 order 主题下的消息
- OrderDto:监听方法的参数类型,表示接收到的是OrderDto类型对象消息

以上就是“spring 整合kafka监听消费的配置过程”的完整攻略和两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring 整合kafka监听消费的配置过程 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 一文搞懂Java JDBC中的SQL注入问题

    一文搞懂Java JDBC中的SQL注入问题 什么是SQL注入? SQL注入是指攻击者利用客户端向服务器传递的SQL语句中的漏洞,注入恶意的查询语句或其他可执行的操作,从而获得非法的访问或者篡改数据的行为。SQL注入攻击是应用程序中最常见的攻击之一。 为什么要防止SQL注入? SQL注入攻击会使应用程序不按照设计来执行SQL语句,因而破坏了应用程序的安全性。…

    Java 2023年6月16日
    00
  • window系统安装jdk jre的教程图解

    下面是“Window系统安装JDK/JRE的教程图解”的完整攻略: 安装JDK/JRE 1. 下载JDK/JRE 首先,前往Oracle官网的JDK下载页面:https://www.oracle.com/java/technologies/javase-downloads.html 根据需要下载对应版本的JDK/JRE安装包,选择相应的操作系统,比如Wind…

    Java 2023年5月24日
    00
  • Javabean简介_动力节点Java学院整理

    Javabean简介:动力节点Java学院整理 什么是Javabean? Javabean是Java语言写成的、可重用的组成部分。它们实际上是简单的Java类,其中包括了表达业务层概念的属性和方法。Javabean对外暴露一个无参构造函数,并且使用一定的规范来描述它的属性和方法 Javabean命名规范 Javabean命名一般采用驼峰式的命名方式 Java…

    Java 2023年6月15日
    00
  • Springboot详解整合SpringSecurity实现全过程

    下面是Spring Boot整合Spring Security的详细攻略,包含两个示例。 Spring Boot整合Spring Security实现全过程 Spring Security是一个功能强大的安全框架,可以帮助我们实现身份验证、授权、攻击防护等安全功能。在Spring Boot中,可以使用Spring Security提供的集成库来方便地使用Sp…

    Java 2023年5月15日
    00
  • maven配置文件pom增加变量取版本号方式

    Maven 是一个强大的 Java 项目构建工具,为了方便地管理和构建项目,Maven 在项目根目录下(Maven 3 的版本中叫做 pom.xml)提供了一个 pom.xml 的配置文件,其中可以定义项目的名称、描述、依赖关系等信息。 在 pom.xml 文件中,可以配置 variable(变量) 来存放一些常量,例如版本号、路径等等,以减少硬编码并方便维…

    Java 2023年5月20日
    00
  • 初识通用数据库操作类——前端easyui-datagrid,form(php)

    初识通用数据库操作类是一篇介绍如何使用easyui-datagrid和easyui-form来进行数据库操作的文章,涉及到的技术有PHP、jQuery、easyui等。 准备工作 在使用easyui-datagrid和easyui-form之前,需要先导入相关的js和css文件以及jQuery库。在此基础上,还需要创建数据库和相应的表格。本篇攻略将以mysq…

    Java 2023年6月15日
    00
  • Java中数字相关的类有哪些?Nuber数字类和Math数学类详解

    前言 我们在解决实际问题时,会经常对数字、日期和系统设置进行处理,比如在我们的代码中,经常会遇到一些数字&数学问题、随机数问题、日期问题和系统设置问题等。 为了解决这些问题,Java给我们提供了多个处理相关问题的类,比如Number类、Math类、Random类、BigInteger类、BigDecimal类、Date类、System类等。 接下来我…

    Java 2023年5月5日
    00
  • JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现

    下面是详细的攻略: JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现 背景介绍 JSON是一种轻量级的数据交换格式,常用于Web应用中的数据传输。在实际开发中,我们常常需要将JSON数据转换为Java对象,并将这些对象存储到数据库中。而JSON数据可能比较复杂,包含嵌套的数据结构,如树形结构数据。因此,本篇攻略将介绍如何使用Jav…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部