SpringBoot集成Kafka详解

news2025/4/5 21:42:37

一、使用idea创建SpringBoot项目

1.1 使用Spring Initializr创建一个SpringBoot程序

在这里插入图片描述
点击Next

1.2 添加依赖

在这里插入图片描述

依赖说明:

  • Lombok简化实体类开发。

  • Spring Web让项目集成web开发所有依赖,包括Spring MVC,内置tomcat等。

  • Spring for Apache Kafka就是SpringKafka的集成依赖。

配置完成之后点击Finish

1.3 查看pom文件

在这里插入图片描述
因为是第一次集成Kafka,这时候只要等待Maven下载好Kafka的相关依赖,下载好后红色会消失。

这样就创建好了一个集成了KafkaSpringBoot Web项目

二、创建生产者

2.1 配置生产者application.yml文件

# 连接Kafka
spring:
  kafka:
    bootstrap-servers: localhost:9092
    # 生产者 key value的序列化方式
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

2.2 创建生产者接口

在这里插入图片描述

在controller包下创建生产者,把接口传递进来的数据发送给Kafka

import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/producer")
public class ProducerController {

    @Resource
    private KafkaTemplate<String, String> kafka;

    @PostMapping
    public String data(@RequestBody String msg) {
        // 通过Kafka发出数据
        kafka.send("test", msg);
        return "ok";
    }
}

三、创建消费者

3.1 配置消费者application.yml文件

# 连接Kafka
spring:
  kafka:
    bootstrap-servers: localhost:9092
    # 消费者 key value的反序列化方式
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      #指定消费者组的 group_id
      group-id: kafka-test

3.2 创建消费者

import org.springframework.kafka.annotation.KafkaListener;
@Configuration
public class KafkaConsumer {

    // 指定要监听的 topic
    @KafkaListener(topics = "test")
    public void consumeTopic(String msg) {
        // 参数: 从topic中收到的 value值
        System.out.println("收到的信息: " + msg);
    }

}

3.3 说明

由于生产者和消费者都写在这个Demo当中。

所以整体application.yml文件如下(上面这么写只是为了区分和理解):

# 连接Kafka
spring:
  kafka:
    bootstrap-servers: 127.0.0.1:9092
    # 生产者 key value的序列化方式
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    # 消费者 key value的反序列化方式
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      #指定消费者组的 group_id
      group-id: kafka-test

四、测试生产者消费者

4.1 使用ApiPost发送一个Post请求调用生产者接口

在这里插入图片描述
发现点击发送之后,控制台迅速返回了一个ok

说明生产者生产数据成功,已经向test这个topic中发送了hello kafka这条数据。

4.2 观察消费者控制台

在这里插入图片描述

发现消费者已经接收了来自生产者的数据,并且把数据打印在了控制台上。

以上就是SpringBoot集成Kafka的基本方式。即使是今后复杂的使用,也是从简单转换而来。

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

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

相关文章

HNU-操作系统OS-2023期中考试复习-刷题

往年期中卷极难获得&#xff0c;这里找了几套卷子。可以看看。 因为往年都是从第一周开始上课的&#xff0c;所以进度会快一点&#xff0c;这学期是从第四周开始上课的&#xff0c;所以进程会慢些&#xff0c;讲到第九章所以只考到第九章。 同样因为太忙了&#xff0c;答案找…

图像分类卷积神经网络模型综述

图像分类卷积神经网络模型综述遇到问题 图像分类&#xff1a;核心任务是从给定的分类集合中给图像分配一个标签任务。 输入&#xff1a;图片 输出&#xff1a;类别。 数据集MNIST数据集 MNIST数据集是用来识别手写数字&#xff0c;由0~9共10类别组成。 从MNIST数据集的SD-1和…

ctfshow web入门web119-124

1.web119 和118题类似&#xff0c;只不过是过滤了PATH 0可以用任何字符代替&#xff0c;比如A,{A},A,{0} KaTeX parse error: Expected }, got # at position 2: {#̲SHLVL}1&#xff0c;或者{##},${#?} {PHP_VERSION:~A}2,php版本为x.x.2时 ${#IFS}3(linux下是3&#xff0c;…

IntelliJ IDEA 2023.1正式发布,Maven项目大提速支持Apache Dubbo

你好&#xff0c;我是YourBatman&#xff1a;做爱做之事❣交配交之人。 &#x1f4da;前言 一年一个大版本&#xff0c;共计3个中型版本&#xff0c;北京时间2023年3月月29日终于迎来了IntelliJ IDEA今年的首个版本2023.1。老规矩&#xff0c;吃肉之前&#xff0c;可以先把这…

顺丰科技x腾讯安全iOA联合案例获云安全联盟CSA 2022安全革新奖

近年来&#xff0c;随着云计算、大数据、物联网等技术的加速创新和应用&#xff0c;一场数字化的变革开始席卷各行各业。远程办公、业务协同、分支互联等需求涌现&#xff0c;随之而来的还有更加复杂多元的高级网络攻击。在此背景下&#xff0c;传统的基于边界的网络安全防护理…

矩阵键盘+CH559制作国产USB矩阵键盘

矩阵键盘+CH559制作国产USB矩阵键盘 文章目录 矩阵键盘+CH559制作国产USB矩阵键盘为什么选择CH559作为主控芯片?如何实现该款矩阵USB键盘?如何将矩阵键盘的信号转化为USB键盘信号?原材料: 矩阵键盘(附带行列键码定义)CH559开发板将矩阵键盘的所有排线连接到单片机的GPIO引…

基于stm32mp157 linux开发板ARM裸机开发教程5:ARM微处理器指令系统(连载中)

前言&#xff1a; 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中&#xff0c;使其内容更加丰富&#xff0c;讲解更加细致&#xff0c;全文所使用的开发平台均为华清远见FS-MP1A开发板&#xff08;STM32MP157开发板&#xff09; 针对对FS-MP1A开发板&…

Python | Python的自我介绍(前世今生)

本文概要 本篇文章主要介绍Python这门语言的前世今生&#xff0c;适合刚入门的小白或者想了解Python历史的同学&#xff0c;文中描述很详细&#xff0c;具有一定的学习价值&#xff0c;感兴趣的小伙伴快来一起学习吧。 个人简介 ☀️大家好&#xff01;我是新人小白博主朦胧的…

【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

目录问题提出问题重述与再理解第一个问题&#xff1a;假如样本不均衡&#xff0c;哪种分类器的泛化性能较好&#xff1f;第二个问腿&#xff1a;在样本不均衡的情况下&#xff0c;如何获得更健壮的模型问题解决方法样本不均衡对机器学习模型会造成什么影响什么模型适合样本不均…

小黑今天上午着急忙慌实习公司楼下笔试,晚上准备和尚香疯狂星期四明天继续现场笔试的leetcode之旅:1091. 二进制矩阵中的最短路径

小黑代码1 class Solution:def shortestPathBinaryMatrix(self, grid: List[List[int]]) -> int:# 一定无解的情况if grid[0][0] 1 or grid[-1][-1] 1:return -1# 矩阵长度n len(grid)# 起点即终点if n 1:return 1# 访问集合seen {(0, 0)}# 初始化队列q collections.…

射频功率放大器在空气耦合超声检测系统中的应用

实验名称&#xff1a;空气耦合超声检测系统研究方向&#xff1a;超声测试设备&#xff1a;ATA-8202射频功率放大器、探头、ATA-5620前置放大器、超声波接收器、数据采集卡、计算机。实验过程&#xff1a;图&#xff1a;空气耦合超声检测锂电池系统锂电池空气耦合超声检测具体过…

TryHackMe-Year of the Dog(Linux渗透测试)

Year of the Dog 谁知道呢&#xff1f;狗咬了一口&#xff01; 端口扫描 循例nmap Web枚举 进80 用gobuster扫了一圈没有任何发现&#xff0c;图像也没有隐写 在主页的请求头的cookie有一个id 改成其他错误值会导致异常&#xff0c;看见叫id&#xff0c;习惯性加个了引号 爆…

【java】集合类

文章目录集合根接口LIST列表迭代器Queue|Deque|PriorityQueueSet集合HashSetLinkedHashSetTreeSet键盘读入MapHashMapLinkedHashMapStream流stream()ints()Collections工具类集合根接口 所有的集合类最终都是实现自集合根接口的&#xff0c;比如ArrayList类&#xff0c;它的祖先…

走向国际市场,怎样用Facebook广告抢占商机?

在当今全球化的商业世界中&#xff0c;企业要想在国际市场中占据一席之地&#xff0c;除了打造优质产品和服务外&#xff0c;有效的营销手段也是至关重要的。 而Facebook作为全球最大的社交媒体平台&#xff0c;其广告投放服务为企业提供了一个快速、便捷、有效的推广途径。那…

安全校验和框架---JWT和Shrio

安全架构 加密 分类 可逆加密和不可逆加密 不可逆加密&#xff1a;常见的不可逆加密算法有MD5&#xff0c;HMAC&#xff0c;SHA1、SHA-224、SHA-256、SHA-384&#xff0c;和SHA-512&#xff0c;其中SHA-224、SHA-256、SHA-384&#xff1b; 可逆加密分为对称加密和非对称加密…

2023最新面试题-Java-5

自定义类加载器 1. 为什么需要自定义类加载器 网上的大部分自定义类加载器文章&#xff0c;几乎都是贴一段实现代码&#xff0c;然后分析一两句自定义ClassLoader的 原理。但是我觉得首先得把为什么需要自定义加载器这个问题搞清楚&#xff0c;因为如果不明白它的作用的情况 …

人工智能动物农场的猪、牛和蟑螂

人工智能动物农场的猪、牛和蟑螂 农业正在成为由人工智能驱动的以数据为中心的业务。中国的大型科技公司正在使用神经网络支持的计算机视觉、可穿戴设备和预测分析算法来重新构想猪、鸡、牛、鹅和蟑螂养殖。 《南华早报》报道称&#xff0c;好医生制药集团每年在中国东南部的四…

OpenHarmony社区运营报告(2023年3月)

目录 本月快讯 一、代码贡献 二、生态进展 三、社区治理 五、社区活动 六、社区及官网运营 本月快讯 • 《OpenHarmony 2022年度运营报告》于3月正式发布&#xff0c;2022年OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;开源项目潜心务实、深耕发展&am…

优化Key顺序提升ClickHouse查询性能

ClickHouse 键列顺序不仅影响表压缩效果&#xff0c;对查询性能也有很大影响&#xff0c;正确使用键列的顺序可以跳过大粒度数据范围&#xff0c;提高查询效率。本文通过示例进行测试不同场景的查询性能&#xff0c;从而让我们了解如何选择键列及其顺序。 测试数据 首先创建并…

从DY用户页面获取作品列表

最近DY的web端更新比较频繁&#xff0c;所以搞了很多方案来应对更新问题。 本文内容是其中一种方案&#xff0c;从用户主页的HTML响应内容中抽取user信息和作品列表数据。 下图中出现的内容都是在html名为RENDER_DATA的script标签中&#xff0c;以urlencode编码。 比如昵称、粉…