SpringBoot快速集成Kafka

Springboot集成Kafka 我们使用spring本身支持的spring-kafka依赖,但是需要注意版本问题,不同的springboot版本支持不同的kafka版本,避免因版本不同带来困扰!参考下图: 阅读详情

SpringBoot快速集成Kafka

由于需要对接kafka进行数据同步,在对接Kafka时由于内外网的原因没办法直接消费数据,故参考内网环境搭建一个Kafka来测试是否网络已通

一、概述

Kafka部署依赖于zookeeper,所以部署方式采用docker compose部署

环境对安全要求较高,需要添加安全验证,使用SASL/PLAIN验证方式

二、集成SpringBoot

自定义topic

配置文件中添加topic、groupId的配置,便于修改

project:kafka:
    topicIds:somliy-test
    groupId:group-id-1

通过读取配置文件的方式,把配置信息加载到Spring中

package top.somliy.kafka.config;
​
​
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import top.somliy.kafka.properties.KafkaProperties;
​
/**
 * 类名: @ClassName KafkaTopicConfig
 * 创建人:@author zhao dong
 * 类描述:@Description:
 * 创建时间: 2023/3/20 16:45
 */@Slf4j@ConfigurationpublicclassKafkaConfigimplementsInitializingBean {
​
    @Autowired
    private KafkaProperties kafkaProperties;
​
    @Override
    publicvoidafterPropertiesSet() {
        // 获取配置
        StringtopicIds= kafkaProperties.getTopicIds();
        StringgroupId= kafkaProperties.getGroupId();
        log.info("KafkaConfig 读取配置,topicIds:" + topicIds);
        log.info("KafkaConfig 读取配置,groupId:" + groupId);
        // 系统写入
        System.setProperty("topicIds", topicIds);
        System.setProperty("groupId", groupId);
    }
}

在读入到系统中后,监听注解就可以写成如下格式

/**
     * kafka监听消息
     *
     * @param kafkaMessage 消息
     */
    @KafkaListener(topics = "#{'${topicIds}'.split(',')}", groupId = "${groupId}")
    public void onMessage(KafkaMessage kafkaMessage) {
        log.info("[线程编号:{} 消息内容:{}]", Thread.currentThread().getId(), kafkaMessage);
    }

三、使用Offset Explorer连接Kafka

property填写
Security填写
Advanced填写
JAAS Config填写

分别为用户名,密码(与docker compose中保持一致)

org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";

四、集成时遇到的问题

序列化方式

在配置中,需要正确配置生产者和消费者的序列化方式,否则启动会报错。

spring:kafka:***
    consumer:
      key-deserializer:org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer:org.springframework.kafka.support.serializer.JsonDeserializer
      ***
    producer:
      key-serializer:org.apache.kafka.common.serialization.StringSerializer
      value-serializer:org.springframework.kafka.support.serializer.JsonSerializer
      ***
    
因为需要添加安全验证,生产消费双防都需要添加身份校验数据
spring:kafka:***
    consumer:
      properties:
        spring:
          json:
            trusted:
              # 配置 信任, 不认会抛异常 is not in the trusted packages
              packages:top.somliy.kafka.message
        session.timeout.ms:15000
        security.protocol:SASL_PLAINTEXT
        sasl.mechanism:PLAIN
        sasl.jaas.config:org.apache.kafka.common.security.scram.ScramLoginModule
          requiredusername="admin"password="admin-secret";复制代码
添加信任类
spring:kafka:
    consumer:
      ***
      properties:
        spring:
          json:
            trusted:
              # 配置 信任, 不认会抛异常 is not in the trusted packages
              packages:top.somliy.kafka.message复制代码

五、使用方法

启动SpringBoot

运行test中的发送消息方法

SpringBoot集成Kafka详解 我们知道,kafka中每个topic被划分为多个分区,那么生产者将消息发送到topic时,具体追加到哪个分区呢?这就是所谓的分区策略,Kafka 为我们提供了默认的分区策略,同时它也支持自定义分区策略。其路由机制为:1.若发送消息时指定了分区(即自定义分区策略),则直接将消息append到指定分区; 阅读详情

相关推荐

Spring Boot 集成 Kafka

Spring Boot 与 Kafka 的集成使得消息队列的使用变得更加简单和高效。通过上述步骤,你可以轻松地配置 Kafka、实现生产者和消费者,并利用 Spring Boot 提供的强大功能来处理消息流。了解 Kafka 的高级特性(如事务和异步处理)能够帮助你更好地满足业务需求,确保系统的高可用性和数据一致性。

Casual_Lei的博客 2351

SpringBoot——集成Kafka详解

我们知道,kafka中每个topic被划分为多个分区,那么生产者将消息发送到topic时,具体追加到哪个分区呢?这就是所谓的分区策略,Kafka 为我们提供了默认的分区策略,同时它也支持自定义分区策略。若发送消息时指定了分区(即自定义分区策略),则直接将消息append到指定分区;若发送消息时未指定 patition,但指定了 key(kafka允许为每条消息设置一个key),则对key值进行hash计算,根据计算结果路由到指定分区,这种情况下可以保证同一个 Key 的所有消息都进入到相同的分区;

吴声子夜歌的博客 2万+

瑞萨RA6M4平台I2C驱动移植实战:MPU6050传感器集成指南

本文详细介绍了在瑞萨RA6M4平台上进行I2C驱动移植并集成MPU6050传感器的实战指南。通过FSP配置工具添加I2C主栈,适配MPU6050官方驱动,实现传感器数据读取与调试,为嵌入式开发提供完整的解决方案。

banana的博客 109

SpringBoot集成Kafka

啦啦啦啦啦,富贵同学又开始开坑了,出了个免费的专栏,主要给大家从0基础开始用springBoot集成第三方的插件或者功能,如果这篇专栏能帮到你,一定不要忘了点一个赞哦!!欢迎大家收藏分享 第一步,导入jar包 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifac

编码人生 7156

同花顺客户端数据采集:Hook注入与内存解密实战

在金融量化领域,客户端数据采集是获取低延迟、高精度行情的关键技术路径。其底层涉及进程通信、内存加密、反调试等典型Windows逆向工程问题。理解API Hook原理与AES-CBC动态密钥派生机制,有助于突破传统HTTP爬虫在国产金融软件中的失效困境。该技术不依赖网络劫持,而聚焦于本地进程内函数拦截与运行时内存解析,具备离线、可控、合规等工程优势,广泛应用于Level2行情、逐笔委托、分笔成交等高频数据场景,是量化基础设施中‘端侧数据主权’的重要实现方式。

weixin_30496999的博客 854

亚马逊(Amazon ads)广告API申请步骤(已经更新完)

你如果是自己的店铺使用,就选择左边的、如果是授权的那种给别人用就选右边的。审核通过了才能进行下一步,我目前就是刚申请完,后续会持续更新!然后会调整到,下面的页面,选择Agency然后右上角点击创建。审核通过会发邮件到你的企业邮箱、时间大概是1-7天左右。输入对应的信息,点击提交审核,就可以开始申请了。1、广告平台跟卖家平台是分开的,这个概念要清楚。2、注册广告一定要用企业邮箱!回到首页,点击成为合作伙伴。注册了以后会跳转到广告。然后再点击加入合作伙伴。然后会弹出下面的页面。

阿泽的博客 5655

Spring boot中快速集成 kafka

Spring boot中集成 kafka 步骤一:通过maven导入依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> 步骤二...

xiaozm1223的博客 255

基于Dify与DeepSeek构建中医智能问答工作流:从知识库到精准处方

本文详细介绍了如何利用Dify与DeepSeek构建中医智能问答工作流,实现从知识库构建到精准处方的全流程。通过模型编排和知识检索技术,系统能够结合中医辨证思维与AI推理能力,为基层医师、学生和爱好者提供结构化诊疗建议。文章重点分享了知识库选材、症状标准化处理、智能检索与辨证推理等核心环节的实战经验。

weixin_29062255的博客 251

Docker搭建kafka+zookeeper以及Springboot集成kafka快速入门

重点在于那个missing-topics-fatal 主题不存在的话,我们是否还要成功启动 我自己的写的默认的主题是test,但是我还没在kafka里面创建,kafka里面还没有这个叫test的主题 所以我启动的时候,报错然后失败了

LUCIAZZZ的博客 2213

QT项目实战:如何在正点原子Linux开发板上集成CVR-100UC身份证阅读器(附完整代码)

本文详细介绍了在正点原子Linux开发板上集成CVR-100UC身份证阅读器的完整实战流程。内容涵盖驱动适配、库文件部署、QT项目框架搭建、核心功能封装以及界面集成,并提供了完整的代码示例,帮助开发者快速实现嵌入式环境下的身份证信息读取功能。

yyy34的博客 257

TI IWR 6843 ISK 毫米波雷达开箱测试

TI IWR6843 ISK毫米波雷达上手体验,教程十分详细,对于新手很友好。

qq_57061492的博客 4032

kafka的单机搭建与springboot快速集成

一、kakfa相关术语 Broker 消息中间件处理节点,一个Kafka节点就是一个broker,一个或者多个Broker可以组成一个Kafka集群 Topic Kafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topic Producer 消息生产者,向Broker发送消息的客户端 Consumer 消息消费者,从B

niuzh的博客 354

Claude Desktop新功能:让非技术人士也能自主编程

摘要: Anthropic近日在Claude桌面应用中集成了Claude Code功能,显著降低了非技术用户的使用门槛。Claude Code作为代理式编程工具,支持多任务并行处理、Git隔离和可视化会话管理,无需命令行操作即可实现代码调试、重构等复杂任务。新增的“计划模式”通过先分析后执行的流程,确保安全性,使产品经理、数据分析师等非开发者也能参与技术工作。这一更新标志着AI技术正打破专业壁垒,让领域专家无需编码背景即可利用高级工具,推动技术民主化。

独立开发,substack顶级编辑 1538

docker安装kafka,并通过springboot快速集成kafka

这个命令,会启动一个额外的 Kafka 消费者来监听 users 主题。这个消费者是通过 Kafka 自带的 kafka-console-consumer.sh 工具启动的,主要用于测试和验证目的。在application.properties或application.yml文件中配置Kafka的相关属性。@ApiOperation(value = "测试发送数据到kafka", httpMethod = "GET")(kafdrop是一个kafka的web图形管理界面)目标机加载成docker镜像。

wangchange的博客 3020

【异常】OpenClaw报错 400 Total tokens of image and text exceed max message tokens. Request

OpenClaw报错400(Token超限)解决方案摘要 该报错因文本/图片总Token数超过模型限额导致,常见于多轮对话累积或单次请求过大。提供三级解决方案: 应急处理:输入"/new"指令清空会话历史,立即重置Token计数(90%问题可解决) 折中方案:保留历史对话前提下,通过精简当前输入、删除早期无关对话或拆分请求来压缩Token 专属处理:单次请求超限时,拆分长文本为2000字以内段落,或分批次上传降低分辨率图片 长期预防建议定期使用"/new"开启新会话,

奶爸的编程之路,也就一周冷个三天 1389

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

快速搭建Springboot集成apache Kafka环境,测试示例

基本搭建 一、Java环境 二、kafka环境 基于docker 安装,开启服务,对外端口映射即可,创建Topic 使用Java Api操作即可。可参考其他资料关于docker/kafka的安装。 这是kafka的目录信息 三、代码示例,项目结构 maven + Java8 + IntelliJ IDEA + Springboot 3.1 创建Maven工程,pom.xml 如下 &lt...

诗和远方,任重道远 1440

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring boot 集成 Kafka 简单快速使用

最近工作用到了kafka,之前只接触过ActiveMQ,简单记录一下入门用法。 只是最简单的结合springboot使用,中间件还要慢慢深入学习。 首先是版本问题,困了我好久,下面是我测试了能用的版本: Spring boot 版本1.5.8.RELEASE spring-kafka 版本 1.2.1.RELEASE 1.引入依赖 <dependency> ...

Life.Trim 351

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spring Boot 2.0 快速集成整合消息中间件 Kafka

欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!! 个人网站: https://www.exception.site/springboot/spring-boot2-kafka 什么是 Kafka? Kafka 是 Apache 基金会开源的一个分布式发布 - 订阅消息中间件,流处理平台。 它起源于 ...

weixin_30252155的博客 247

【JAVA架构师成长之路】【Kafka】第1集:Springboot与Kafka快速集成

通过本课程,可快速掌握Spring boot与Kafka的集成开发,并具备处理高并发、高可靠性消息系统的实战能力。Kafka作为分布式消息队列,广泛应用于异步通信、日志收集、实时流处理等场景。Spring Boot通过。简化集成流程,帮助开发者快速构建高吞吐、高可靠的异步消息系统(如订单异步处理、用户行为跟踪)。

因为热爱,所以付出 1269

Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka

欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!! 个人网站: https://www.exception.site/springboot/spring-boot2-kafka 什么是 Kafka? Kafka 是 Apache 基金会开源的一个分布式发布 - 订阅消息中间件,流处理平台。 它起源于 ...

dongduohuan0337的博客 136

Kafka与Spring Boot集成:快速搭建消息系统

摘要: 本文介绍了如何在Spring Boot项目中集成Kafka消息系统,实现异步通信。首先需准备JDK、Maven和Kafka环境,通过spring-kafka依赖简化集成。配置Kafka连接信息后,分别实现消息生产者(使用KafkaTemplate发送消息)和消费者(通过@KafkaListener监听消息),并创建REST接口触发消息发送。针对依赖冲突问题,提供了排除冲突或指定版本的解决方案。最终完成Spring Boot与Kafka的高效集成,支持跨系统数据交互,为后续扩展其他系统集成奠定基础。

fykam的博客 759

SpringBoot4.0集成Kafka4快速入门

kafka的管理工具有很多,比如:Kafka UI、Kafdrop等,这里我们选择Kafka UI,它是一个SpringBoot的应用,易用且功能全面。,只需要设置broker的地址和消费者所属的组即可进行消息的收发,显然比之前的老版本更简单了。新版的kafka不再依赖zookeeper。的key和value的序列化器。

若鱼的专栏 866

Spring Boot 快速集成Kafka

1. 添加依赖 2.生产者配置 3.发送消息service 中添加 4.消费者配置 5.消息监听 新增消息监听类

程序猿踩坑集锦 901
上一篇: 小伙被内卷逼成扫地僧,把牛客网所有面试题整理成25W字面试手册
下一篇: 高能产出!阿里技术官首发的MyCat中间件手册,理论实操齐下
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值