当前位置: 首页 > news >正文

SpringBoot集成kafka-监听器注解

SpringBoot集成kafka-监听器注解

  • 1、application.yml
  • 2、生产者
  • 3、消费者
  • 4、测试类
  • 5、测试

在这里插入图片描述

1、application.yml

在这里插入图片描述

#自定义配置
kafka:topic:name: helloTopicconsumer:group: helloGroup

2、生产者

package com.power.producer;import com.power.model.User;
import com.power.util.JSONUtils;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import java.util.Date;@Component
public class EventProducer {@Resourceprivate KafkaTemplate<String,Object> kafkaTemplate;public void sendEvent2(){User user = User.builder().id(10001).phone("15676767676").birthday(new Date()).build();String userJson = JSONUtils.toJSON(user);kafkaTemplate.send("helloTopic",userJson);}}

3、消费者

package com.power.consumer;import com.power.model.User;
import com.power.util.JSONUtils;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.support.KafkaHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Component;import java.util.function.Consumer;@Component
public class EventConsumer {//采用监听的方式接收事件(消息,数据)@KafkaListener(topics = {"${kafka.topic.name}"},groupId="${kafka.consumer.group}")public void onEvent3(String userJson,@Header(value=KafkaHeaders.RECEIVED_TOPIC) String topic,@Header(value=KafkaHeaders.RECEIVED_PARTITION_ID) String partition,ConsumerRecord<String,String> record){User user =JSONUtils.toBean(userJson,User.class);System.out.println("读取/消费到的事件,user:"+user+",topic:"+topic+",partition:"+partition);System.out.println("读取/消费到的事件:"+record.toString());}}

在这里插入图片描述

4、测试类

package com.power;import com.power.producer.EventProducer;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;@SpringBootTest
public class SpringBoot02KafkaBaseApplication {@Resourceprivate EventProducer eventProducer;@Testvoid sendEvent2(){eventProducer.sendEvent2();}}

5、测试

先启动消费者监听
再启动生产者发送消息
消费者依然可以正常监听到消息:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 知识图谱问答召回机制-GraphRAG
  • “领导让我帮忙买30杯奶茶,实际花费535元,但领导却只转了500元,我该如何提醒领导转我35元的差额?”
  • 【全开源】php在线客服系统源码 (搭建教程+全新UI)
  • 如何上传NPM包:一步步指南
  • Linux磁盘操作之df命令
  • 利用Pandas的groupby和矢量化运算,减少显式循环,提高处理速度
  • 如何有效激活微信陌生客户:加好友后的沟通策略!
  • 滴滴出行:分布式数据库的架构演进之路|OceanBase案例
  • 【机器学习】线性回归
  • 汇川技术|Inoproshop软件菜单[在线、调试]
  • 如何高质量将PDF拆分多个文件?这6款工具超好用
  • 汽车DV与PV测试
  • SuperMap WebGPA外部大数据集群部署实践
  • 动手学深度学习课程竞赛:Classify Leaves
  • NI 和 Ettus Research USRP 设备之间有何区别?
  • SegmentFault for Android 3.0 发布
  • Apache的80端口被占用以及访问时报错403
  • CAP 一致性协议及应用解析
  • ECS应用管理最佳实践
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java,console输出实时的转向GUI textbox
  • Java多态
  • Joomla 2.x, 3.x useful code cheatsheet
  • Laravel5.4 Queues队列学习
  • miaov-React 最佳入门
  • mongo索引构建
  • ubuntu 下nginx安装 并支持https协议
  • ViewService——一种保证客户端与服务端同步的方法
  • Zsh 开发指南(第十四篇 文件读写)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 网页视频流m3u8/ts视频下载
  • 我与Jetbrains的这些年
  • 智能合约开发环境搭建及Hello World合约
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​Redis 实现计数器和限速器的
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # Kafka_深入探秘者(2):kafka 生产者
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #《AI中文版》V3 第 1 章 概述
  • #Linux(帮助手册)
  • (1)STL算法之遍历容器
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (WSI分类)WSI分类文献小综述 2024
  • (二十四)Flask之flask-session组件
  • (十八)三元表达式和列表解析
  • (十三)MipMap
  • (算法)区间调度问题
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Remoting学习笔记(三)信道
  • .net 后台导出excel ,word
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案