【开发篇】二十一、SpringBoot整合Kafka

news2025/2/23 11:57:14

文章目录

  • 1、整合
  • 2、消息的生产
  • 3、消费
  • 4、补充:安装

Kafka主体不是用来做消息中间件的,但也有这个功能,接下来整合Kafka

1、整合

导入依赖坐标:

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

添加相关配置:

spring:  
  kafka:    
    bootstrap-servers: localhost:9092    
    consumer:      
      group-id: order # 不可省略,否则监听时报错No group.id found in consumer config

在需要的地方注入操作对象:

@Autowired    
private KafkaTemplate<String ,String> kafkaTemplate;
//key和value的泛型自适应

2、消息的生产

继续在Service层演示消息的发送,send方法,传入topic和message

@Service
@Slf4j
public class MessageServiceKafkaImpl implements MessageService {    

	@Autowired    
	private KafkaTemplate<String ,String> kafkaTemplate;   

	@Override    
	public void sendMessage(String id) {  
	      	
		log.info("使用Kafka将待发送短信的订单纳入处理队列,id:"+id);       
		
		kafkaTemplate.send("kafka_topic",id);  
		  
	}
}

3、消费

直接使用监听器监听队列,不演示手动自己拿。使用@KafkaListener注解,其有一属性topic,就是send时的那个topic。需要注意的是,监听时,message依旧在形参,但类型是ConsumerRecord

@Component
@Slf4j
public class KafkaMessageListener{    

	@KafkaListener(topics = {"kafka_topic"})
	public void onMessage(ConsumerRecord<?, ?> record) {        
		
		log.info("已完成短信发送业务,id:"+record.value());    
	}
}

打印下ConsumerRecord对象看看:

在这里插入图片描述

注意监听时记得配置spring.kafka.consumer.group-id:

在这里插入图片描述

4、补充:安装

生产环境一般都用docker安装在容器里或者Linux上,这里备份下Windows安装,因为本地开发调式还得用。

  • 下载
下载地址:https://kafka.apache.org/downloads
windows 系统下3.0.0版本存在BUG,建议使用2.X版本

在这里插入图片描述

  • 安装:解压缩即安装

  • 启动zookeeper(注册中心),注意这里双重目录,用第二个kafka的bin/windows下的bat文件

# 在windows/zookeeper-server-start.bat所在目录cmd,再执行以下指令
# 默认端口:2181,zookeeper.properties中自行修改
zookeeper-server-start.bat ..\..\config\zookeeper.properties
# 报错输入行太长时,移动文件夹位置
# 或者将文件夹的版本号重命名去掉

在这里插入图片描述

  • 启动Kafka
# 在windows/kafka-server-start.bat所在目录cmd,再执行以下指令
# 用第二个kafka的bin/windows下的bat文件
# 默认端口:9092,server.properties中自行修改
kafka-server-start.bat ..\..\config\server.properties

到此,安装启动成功。可测试下功能,进入对应的bat文件目录执行指令:

  • 创建topic
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test123  # 分区等参数在kafka学
  • 查看topic
kafka-topics.bat --zookeeper 127.0.0.1:2181 --list
  • 删除topic
kafka-topics.bat --delete --zookeeper localhost:2181 --topic test
  • 生产者功能测试
kafka-console-producer.bat --broker-list localhost:9092 --topic test123
  • 消费者功能测试
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test123 --from-beginning

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报 | 微软将推出首款AI芯片;Galaxy S24系列首发

【聚观365】10月8日消息 微软将推出首款AI芯片 Galaxy S24系列首发 特斯拉将发布第三季度财报 台积电9月份营收56亿美元 2023国庆档新片总票房破27亿 微软将推出首款AI芯片 据外媒援引知情人士消息透露&#xff0c;微软计划在下个月举行的年度开发者大会上推出该公司首款…

【PG】Linux系统部署PostgreSQL 单机数据库

安装方式 1 安装包方式 &#xff08;Packages and Installers&#xff09; 支持的操作系统包括 liunxMacosWindowsBSDSolaris 2 源码安装 &#xff08;Source code&#xff09; 下载源码包 通过下载地址PostgreSQL: File Browser 可以看到有各个版本的源码目录 选择13.1…

80、90童年回忆之小霸王游戏机网页版

前言 在如今快节奏的生活中&#xff0c;我们常常追逐着最新潮流&#xff0c;迷失了曾经的经典与回忆。现在&#xff0c;有一种游戏机能够带你回到小时候&#xff0c;让你重温那些令人难以忘怀的游戏时光&#xff0c;这就是小霸王游戏机&#xff01; 作为 80 年代和 90 年代最受…

对于复杂二进制数位dp问题考虑朴素思想:agc015d

https://atcoder.jp/contests/agc015/tasks/agc015_d 我一开始考虑的是直接上二进制数位dp&#xff0c;但发现这很难做 然后其实可以从最朴素的二进制分类讨论角度考虑 同样是那么几个套路&#xff0c;考虑最高位

AXI总线协议基础--几分钟熟悉通道信号和基础架构

目录 一、AXI协议基础 1.1读写通道的基本架构图 1.2猝发操作举例 1.3传输顺序 二、各个通道中的信号描述 2.1全局信号 2.2写地址通道信号 2.3写数据通道信号 2.4写响应通道信号 2.5读地址通道信号 2.6读数据通道 三、通道握手 3.1单一信息传输时的握手过程 3.2不…

NPM 常用命令(九)

目录 1、npm link 1.1 使用语法 1.2 描述 2、npm login 2.1 描述 3、npm logout 3.1 描述 4、npm ls 4.1 使用语法 4.2 描述 5、npm org 5.1 使用语法 5.2 示例&#xff1a; 6、npm outdated 6.1 使用语法 6.2 描述 6.3 示例 7、npm owner 7.1 使用语法 7.2…

使用Spring Initailizr功能~

Spring Initializr是一个用于快速生成Spring Boot项目的在线工具&#xff0c;它允许用户选择所需的Spring Boot版本、添加所需的依赖&#xff0c;并生成一个可用的项目结构&#xff0c;包括基本的配置文件和代码框架&#xff0c;它能够简化Spring Boot项目的初始化过程&#xf…

高通camx开源部分简介

camera整体框架 ISP Pipeline diagram Simple Model Camx and chi_cdk 整体框架 CtsVerifier, Camra Formats Topology of Camera Formats. Topology (USECASE: UsecaseVideo) Nodes List Links between nodes Pipeline PreviewVideo Buffer manager Create Destro…

Centos7安装Redis7.x最新稳定版|配置开机启动(骨灰级|保姆级)

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 Win11查看安装的Python路…

数据丢失怎么办?分享3个神仙方法!

“紧急求解答&#xff01;数据丢失了怎么用简单的方法恢复呀&#xff1f;电脑中保存了一些非常重要的数据&#xff0c;不知道怎么就不见了。有没有方法帮我找回来呀&#xff1f;” 在日常办公中&#xff0c;很多用户会将重要的数据保存在电脑中。这样有利于在需要时及时使用文件…

苹果iTunes如何备份数据?按照这几个步骤就可以了!

iTunes是什么&#xff1f;苹果iTunes是辅助用户使用苹果设备的一款功能强大的应用程序。使用过iTunes的苹果用户应该都不陌生&#xff0c;用户可以在iTunes上管理并播放音乐、电影、电视节目等媒体文件。此外&#xff0c;用户还可以通过iTunes来备份手机上的数据。 那么&#…

《低代码指南》——低代码维格云服务菜单

简介​ 快速了解付费客户能够获得维格服务团队哪些服务,本篇内容不包含使用免费试用版本的客户。 了解维格表产品价格与功能权益:戳我看价格与权益​ 客户付费后能得到哪些服务项目?​ 常规服务项目:

jdk21环境配置

1、官方下载jdk http://www.oracle.com/java/ 2、解压指定目录下 将压缩包解压到d:\jdk\jdk-21目录下 3、配置环境变量 windows 10系统配置方法 第一步 计算机 > 属性>高级系统设置 第二步 第三步 新增环境变量 JAVA_HOME 新增环境变量CLASSPATH 第四步 编…

IDEA 自定生成java类文档型注释

IDEA 自定生成java类文档型注释 /*** author 李昊哲* version 1.0.0* create ${DATE} ${TIME}*/

Spotify高质量工程生产力实践

对于大规模团队来说&#xff0c;开发体验将直接影响到产品质量和迭代速度。本文介绍了Spotify工程团队通过打造统一的开发平台&#xff0c;赋能开发团队&#xff0c;实现高质量工程生产力的经验。原文: Quality Engineering Productivity at Spotify 编程可能是一场噩梦。 并不…

SpringBoot 如何使用 JWT 实现身份认证和授权

Spring Boot 使用 JWT 实现身份认证和授权 JSON Web Token&#xff08;JWT&#xff09;是一种用于在网络应用之间安全传递信息的开放标准。它使用了一种紧凑且独立于语言的方式在各方之间传递信息&#xff0c;通常用于在客户端和服务器之间验证用户身份和授权访问资源。本文将…

ValueError: high is out of bounds for int32 报错

问题描述&#xff1a; 笔者在Windows 64位平台跑一个在Ubuntu上运行正常的程序时&#xff0c;出现了以下报错&#xff1a; 具体为&#xff1a; seed np.random.randint(0, 2 ** 32) # make a seed with numpy generatorFile "mtrand.pyx", line 763, in numpy.ra…

vue3使用知识点总结

一、vue3 项目搭建 npm 6.x npm init vitelatest myvue3 --template vuevue 3.2.26使用 element plus ui 框架 npm i -S element plus//全部引入 import ElementPlus from element-plus; import element-plus/dist/index.css; const Vue createApp(App); Vue.use(ElementPl…

Java基于SpringBoot的在线考试系统

文章目录 第一章第二章.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数据库表 第五章 系统功能实现5.1系统登录注册5.2管理员功能模块 六 源码咨询 第一章 在线考试的需求和管理上的不断提升&#xff0c;在线考试管理的潜力将无限扩大&…

什么是业务流程图(TFD),数据字典(DD),数据流程图(DFD)

什么是业务流程图&#xff08;TFD&#xff09;&#xff0c;数据字典&#xff08;DD&#xff09;&#xff0c;数据流程图&#xff08;DFD&#xff09;&#xff1f; 答: TFD是一种描述系统内各单位、人员之间的业务关系、作业顺序和管理流向的图表&#xff0c;利用它可以帮助分析…