SpringBoot+Kafka
文章目录
- 一、依赖
- 二、配置文件
- 三、API
- 1、生产者
- 2、消费者
一、依赖
<!-- spring-kafka(与kafka的版本一致) -->
<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.5.1.RELEASE</version>
</dependency>
二、配置文件
spring:kafka:# kafka地址,集群用逗号分隔(localhost:9092,localhost:9093)。缺省:localhost:9092bootstrap-servers: localhost:9092# 生产者#producer:# key的序列化方式,缺省:org.apache.kafka.common.serialization.StringSerializer#key-serializer: org.apache.kafka.common.serialization.StringSerializer# value的序列化方式,缺省:org.apache.kafka.common.serialization.StringSerializer#value-serializer: org.apache.kafka.common.serialization.StringSerializer# 消费者consumer:# 消费者组group-id: testGroup# 自动偏移量# earliest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费# latest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据# none:topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常auto-offset-reset: latest# key的序列化方式,缺省:org.apache.kafka.common.serialization.StringSerializer#key-deserializer: org.apache.kafka.common.serialization.StringDeserializer# value的序列化方式,缺省:org.apache.kafka.common.serialization.StringSerializer#value-deserializer: org.apache.kafka.common.serialization.StringDeserializer#listener:# SINGLE-单个消费;BATCH-批量消费。缺省SINGLE#type: BATCH# 消费者监听的主题不存在时,启动项目是否报错。缺省:false#missing-topics-fatal: false
三、API
1、生产者
/*** 生产消息** @author kimi* @date 2023/2/18*/
@Component
public class ProducerMsg {@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;/*** 生产消息** @param msg*/public void send(String topic, String msg) {kafkaTemplate.send(topic, msg);}/*** 生产消息+回调** @param topic* @param msg*/public void sendCallback(String topic, String msg) {kafkaTemplate.send(topic, msg).addCallback(new ListenableFutureCallback<SendResult<String, String>>() {//成功的回调@Overridepublic void onSuccess(SendResult<String, String> stringStringSendResult) {RecordMetadata recordMetadata = stringStringSendResult.getRecordMetadata();//主题final String topic = recordMetadata.topic();//分区final int partition = recordMetadata.partition();//偏移量final long offset = recordMetadata.offset();System.err.println(String.format("生产消息成功:topic: %s,partition: %s,offset: %s", topic, partition, offset));}//失败的回调@Overridepublic void onFailure(Throwable throwable) {}});}}
2、消费者
/*** 消费者** @author kimi* @date 2023/2/18*/
@Component
public class ConsumeMsg {/*** 单个消费** @param consumer*/@KafkaListener(topics = {"USER", "LOG"})public void consumeSingle(ConsumerRecord<String, String> consumer) {System.err.println("监听到kafka消息: " + consumer);final String topic = consumer.topic();final String value = consumer.value();}/*** 批量消费* 需将配置文件中的listener.type设置成BATCH** @param consumers*///@KafkaListener(topics = {"USER", "LOG"})public void consumeBatch(List<ConsumerRecord<String, String>> consumers) {consumers.forEach(consumer -> {final String topic = consumer.topic();final String value = consumer.value();System.err.println(String.format("topic: %s,value: %s", topic, value));});}}
相关文章:
SpringBoot+Kafka
文章目录 一、依赖二、配置文件三、API1、生产者2、消费者 一、依赖 <!-- spring-kafka(与kafka的版本一致) --> <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>…...
世界顶级名校计算机专业,都在用哪些书当教材?(文末送书)
目录 01《深入理解计算机系统》02《算法导论》03《计算机程序的构造和解释》04《数据库系统概念》05《计算机组成与设计:硬件/软件接口》06《离散数学及其应用》07《组合数学》08《斯坦福算法博弈论二十讲》参与规则 清华、北大、MIT、CMU、斯坦福的学霸们在新学期里…...
蓝桥杯刷题--python-8(2023 填空题)
0幸运数 - 蓝桥云课 (lanqiao.cn) res=0 for i in range (1,100000000):l_n=[]for j in str(i):l_n.append(int(j))if len(l_n) % 2 ==0:cur =len(l_n)>>1if sum(l_n[:cur])==sum(l_n[cur:]):res+=1 print(res) 0有奖问答 - 蓝桥云课 (lanqiao.cn) dfs def bfs(score, q…...
Eclipse - Reset Perspective
Eclipse - Reset Perspective 1. Window -> Perspective -> Reset Perspective2. Reset Perspective -> YesReferences 1. Window -> Perspective -> Reset Perspective 2. Reset Perspective -> Yes References [1] Yongqiang Cheng, https://yo…...
1.5v的电池电压低于多少v等于没电
对于1.5V的电池,电压低于一定值时就不再适合使用了。具体的电压值取决于电池的类型和使用设备的需求。一般来说, 对于接收设备(如收音机、BB机、遥控机等),每节电池电压一般到1.2V以下就认为没电了。有些电动玩具、剃…...
LabVIEW智能监测系统
LabVIEW智能监测系统 设计与实现一个基于LabVIEW的智能监测系统,通过高效的数据采集和处理能力,提高监测精度和响应速度。系统通过集成传感器技术与虚拟仪器软件,实现对环境参数的实时监测与分析,进而优化监控过程,提…...
代码随想录刷题第34天
第一题是柠檬水找零https://leetcode.cn/problems/lemonade-change/,感觉并没有特别靠近贪心算法,可供讨论的情况非常少,5元收下,10元返5元,20元返15元,对各种找零情况讨论一下即可。 class Solution { pu…...
AMD FPGA设计优化宝典笔记(5)低频全局复位与高扇出
亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西: 第一个东西是代码的良好风格; 第二个是设计收敛等的本质。 这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触发…...
14. Qt 程序菜单实现,基于QMainWindow
目录 前言: 技能: 内容: 一、ui中直接添加控件实现 二、 完全通过代码实现菜单 参考: 前言: 基于QMainWindow,两种方式实现菜单:通过直接添加ui控件快速添加菜单和完全通过代码实现菜单&a…...
如何利用SpringSecurity进行认证与授权
目录 一、SpringSecurity简介 1.1 入门Demo 二、认证 编辑 2.1 SpringSecurity完整流程 2.2 认证流程详解 2.3 自定义认证实现 2.3.1 数据库校验用户 2.3.2 密码加密存储 2.3.3 登录接口实现 2.3.4 认证过滤器 2.3.5 退出登录 三、授权 3.1 权限系统作用 3.2 授…...
如何简单上手清华AutoGPT并搭建到本地环境
一、准备工作 安装Docker:确保你的本地机器上已经安装了Docker。如果还没有安装,请访问Docker官方网站并按照指引进行安装。--点击进入Docker官网 获取清华AutoGPT的Docker镜像:清华AutoGPT团队可能已经提供了一个Docker镜像,方便…...
【漏洞复现-通达OA】通达OA share存在前台SQL注入漏洞
一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA为各行业不同规模的众多用户提供信息化管理能力,包…...
HTML5 Canvas与JavaScript携手绘制动态星空背景
目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>星空背景</title> </head> <body style"overflow-x:hidden;"><canvas …...
如何优雅地与ChatGPT对话?
ChatGPT已经发布了一年之久了,但你真的会使用ChatGPT吗?同一个问题,不同的问法得到的答案可能千差万别,你可以把ChatGPT当作一个知识面很广的专家,他上知天文下知地理,但他无法直接知道你的意图,…...
AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】
文章目录 背景什么是提示工程?从零开始:准备工作设计提示调用大语言模型 实际应用示例文字创作助手代码生成持续优化与迭代数据隐私与安全性可解释性与透明度总结 AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】⛳粉…...
量子算法入门——3.狄拉克符号与量子态(3)
3. 狄拉克符号的数学基础 左矢是右矢的共轭转置 上标*表示共轭 算符就是对狄拉克符号进行操作,就是相当于矩阵操作向量,算符对应本征值和本征态 本征值:拉伸x、y向量的程度本征态:x、y向量 上标匕首🗡符号…...
c++ STL系列——(三)list
目录 引言 list的特点 list的用法 list与其他容器的比较 结论 引言 在C STL中,list 是一个非常灵活且功能强大的双向链表容器,它允许存储任意类型的元素,并提供了丰富的操作函数,包括插入、删除、排序、查找以及对容器的遍历…...
软考29-上午题-排序
一、排序的基本概念 1-1、稳定性 稳定性指的是相同的数据所在的位置经过排序后是否发生变化。若是排序后,次序不变,则是稳定的。 1-2、归位 每一趟排序能确定一个元素的最终位置。 1-3、内部排序 排序记录全部存放在内存中进行排序的过程。 1-4、外部…...
【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图
vueElement UI项目中数据分析功能需要用到圆环图 折线图 饼图 柱状图等,可视化图形分析 安装流程及示例 1.安装依赖 npm install echarts --save2.在main.js中引入并挂载echarts import echarts from echarts Vue.prototype.$echarts echarts3.在需要使用echart…...
Unity之XR Interaction Toolkit如何在VR中实现一个可以拖拽的UI
前言 普通的VR项目中,我们常见的UI都是一个3D的UI,放置在场景中的某个位置,方便我们使用射线点击。但是为了更好的体验,我们可能会有跟随头显的UI,或者可拖拽的UI,这样更方便用户去操作。 所以我们今天的需求就是:如何基于XR Interaction Toolkit 插件 在VR中使用手柄射…...
RePKG:终极Wallpaper Engine资源解锁与转换工具
RePKG:终极Wallpaper Engine资源解锁与转换工具 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾面对Wallpaper Engine精美的动态壁纸,却苦于无法提取…...
阴阳师自动化脚本终极指南:一键解放双手的智能游戏助手
阴阳师自动化脚本终极指南:一键解放双手的智能游戏助手 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为阴阳师中重复繁琐的日常任务而烦恼吗?每天需…...
[智能体-27]:Ollama 通过命令行与模型交互的几种方式
Ollama 命令行交互四种常用方式1. 交互式对话(最常用)直接进入会话,持续聊天bash运行ollama run qwen2:7b输入问答,/bye 退出,/clear 清屏2. 单次命令提问(一行执行)无需进入会话,直…...
Leslie矩阵建模:从种群动力学到捕食竞争与机器学习拟合
1. 项目概述:从矩阵视角看种群兴衰在生态学和种群生物学里,我们总想预测未来:这片森林里的鹿群十年后会怎样?引入狼群后,整个系统会稳定还是崩溃?传统微分方程模型(比如经典的Lotka-Volterra方程…...
非交换多项式优化:利用稀疏性破解大规模矩阵优化难题
1. 非交换多项式优化:从理论到计算的深度解析在优化理论的世界里,我们习惯了处理那些“听话”的变量——实数、向量,它们满足交换律,x*y总是等于y*x。然而,当我们踏入量子力学、鲁棒控制或高级矩阵分析等领域时&#x…...
机器学习在眼科精准医疗中的应用:从高维基因数据中挖掘疾病靶点
1. 项目概述:当机器学习遇见眼科精准医疗作为一名长期在生物信息学与机器学习交叉领域摸爬滚打的研究者,我常常思考一个问题:面对海量的组学数据,我们如何能像大海捞针一样,精准地找到那把决定疾病走向的“钥匙”&…...
ZygiskFrida:安卓逆向的Zygote层动态插桩新范式
1. 这不是“又一个 Frida 模块”,而是安卓逆向工作流的物理层重构你有没有过这样的经历:在一台已 root 的测试机上,想用 Frida hook 一个刚启动的系统服务,结果发现frida-server启动失败,报错Permission denied&#x…...
仅限首批200家零售企业获取:2024中国零售Agent成熟度评估矩阵V2.1(含137项能力测评项+自动生成差距报告)
更多请点击: https://codechina.net 第一章:AI Agent零售行业应用 AI Agent 正在重塑零售行业的客户体验、供应链效率与决策智能化水平。通过融合自然语言理解、多步推理、工具调用与记忆机制,AI Agent 不再是单点问答机器人,而是…...
保姆级教程:用Arbe或大陆4D毫米波雷达点云数据,手把手实现Freespace检测(附Python伪代码)
毫米波雷达点云实战:从数据到可行驶区域的完整工程指南在自动驾驶感知系统中,可行驶区域检测(Freespace)直接决定了车辆路径规划的可行空间边界。相比激光雷达和摄像头方案,4D毫米波雷达凭借全天候工作能力、成本优势和…...
LangGraph多智能体工作流:从线性执行到网状协作的重构
LangGraph多智能体工作流:从线性执行到网状协作的重构 1. 标题 (Title) 为了精准覆盖核心关键词、吸引不同层次的读者(AI应用开发者、LangChain进阶学习者、多智能体系统架构师),我准备了以下4个差异化标题: 《LangGraph 重塑AI协作:告别LangChain AgentExecutor的“单线…...
