当前位置:首页 > 科技  > 软件

使用 Spring Boot 和 Kafka Streams 进行实时数据处理

来源: 责编: 时间:2023-10-13 14:37:17 177观看
导读Spring Boot 和 Apache Kafka Streams 是两个强大的工具,它们使开发人员能够创建可靠且可扩展的实时数据处理应用程序。在这篇文章中,我们将了解 Spring Boot 和 Kafka Streams 如何协同工作,如何利用流处理来发挥应用程

Spring Boot 和 Apache Kafka Streams 是两个强大的工具,它们使开发人员能够创建可靠且可扩展的实时数据处理应用程序。在这篇文章中,我们将了解 Spring Boot 和 Kafka Streams 如何协同工作,如何利用流处理来发挥应用程序的优势。还将探索交互式查询,这是一个相对较新且有趣的功能,为实时数据分析提供了新的机会。9b928资讯网——每日最新资讯28at.com

9b928资讯网——每日最新资讯28at.com

安装Kafka

Kafka可以从官方网站https://kafka.apache.org/downloads下载。一旦 Kafka 启动并运行,就创建一个主题。9b928资讯网——每日最新资讯28at.com

创建Spring Boot项目

创建一个新的 Spring Boot 项目,并且引入“Spring Web”和“Spring for Apache Kafka”两个依赖项。9b928资讯网——每日最新资讯28at.com

@SpringBootApplicationpublic class KafkaStreamsDemoApplication {    public static void main(String[] args) {        SpringApplication.run(KafkaStreamsDemoApplication.class, args);    }}

配置Kafka

接下来,在应用程序的 application.properties 文件中配置 Kafka 创建的主题和代理地址。9b928资讯网——每日最新资讯28at.com

spring.kafka.bootstrap-servers=localhost:9092spring.kafka.consumer.group-id=my-groupspring.kafka.consumer.auto-offset-reset=earliest

创建 Kafka 流处理器

下一步是构建一个 Kafka Streams 处理器,从“my-topic”读取消息并处理,然后将结果输出到另一个主题。使用 KStream API 来处理逻辑,如下:9b928资讯网——每日最新资讯28at.com

@Beanpublic Function<KStream<String, String>, KStream<String, String>> process() {    return input -> input            .mapValues(value -> value.toUpperCase())            .to("output-topic");}

交互式查询

交互式查询是 Kafka Streams 的创新新功能之一。借助此功能,可以立即查询 Kafka Streams 应用程序的状态存储。让我们看看如何使用交互式查询检索存储在状态存储中的大写消息的数量。9b928资讯网——每日最新资讯28at.com

@Autowiredprivate InteractiveQueryService interactiveQueryService;@GetMapping("/messageCount")public long getMessageCount() {  ReadOnlyKeyValueStore<String, Long> store = interactiveQueryService.getQueryableStore("message-count-store", QueryableStoreTypes.keyValueStore());     return store.get("uppercase-message-count");}

在此代码中,我们使用 InteractiveQueryService 来获取“message-count-store”的状态存储的句柄,然以查询该存储来获取大写消息的计数。9b928资讯网——每日最新资讯28at.com

发送数据到Kafka

在实际应用程序中,数据将从多个源发送到 Kafka。在本示例中,我们将使用一个简单的 Kafka 生产者来与“my-topic”进行通信。9b928资讯网——每日最新资讯28at.com

@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;public void produceMessage(String message) {    kafkaTemplate.send("my-topic", message);}

使用处理后的数据

使用 Kafka 消费者最终从“output-topic”接收编辑后的数据,如下:9b928资讯网——每日最新资讯28at.com

@KafkaListener(topics = "output-topic", groupId = "my-group")public void consume(String message) {    System.out.println("Received: " + message);}

总结

在本文中,我们了解了如何使用 Spring Boot 和 Kafka Streams 创建用于实时数据处理的应用程序,并且引入了交互式查询这一有趣的新功能。借助交互式查询,可以通过处理实时数据以及实时查询 Kafka Streams 应用程序的状态来创建交互式动态应用程序。9b928资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-13310-0.html使用 Spring Boot 和 Kafka Streams 进行实时数据处理

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 推荐 13 个 IntelliJ IDEA 高手代码编辑技巧!

下一篇: C#.Net析构知识引申(CLR级的剖析)

标签:
  • 热门焦点
  • 对标苹果的灵动岛 华为带来实况窗功能

    对标苹果的灵动岛 华为带来实况窗功能

    继苹果的灵动岛之后,华为也在今天正式推出了“实况窗”功能。据今天鸿蒙OS 4.0的现场演示显示,华为的实况窗可以更高效的展现出实时通知,比如锁屏上就能看到外卖、打车、银行
  • 红魔电竞平板评测:大屏幕硬实力

    红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    这几年除了手机作为智能生活终端最主要的核心之外,第二个可以成为中心点的产品是什么?——是智能音箱。 手机在执行命令的时候有两种操作方式,手和智能语音助手,而智能音箱只
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 5月iOS设备性能榜:M1 M2依旧是榜单前五

    5月iOS设备性能榜:M1 M2依旧是榜单前五

    和上个月一样,没有新品发布的iOS设备性能榜的上榜设备并没有什么更替,仅仅只有跑分变化而产生的排名变动,刚刚开始的苹果WWDC2023,推出的产品也依旧是新款Mac Pro、新款Mac Stu
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • Automa-通过连接块来自动化你的浏览器

    Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
Top
Baidu
map