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

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

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

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

3BO28资讯网——每日最新资讯28at.com

安装Kafka

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

创建Spring Boot项目

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

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

配置Kafka

接下来,在应用程序的 application.properties 文件中配置 Kafka 创建的主题和代理地址。3BO28资讯网——每日最新资讯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 来处理逻辑,如下:3BO28资讯网——每日最新资讯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 应用程序的状态存储。让我们看看如何使用交互式查询检索存储在状态存储中的大写消息的数量。3BO28资讯网——每日最新资讯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”的状态存储的句柄,然以查询该存储来获取大写消息的计数。3BO28资讯网——每日最新资讯28at.com

发送数据到Kafka

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

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

使用处理后的数据

使用 Kafka 消费者最终从“output-topic”接收编辑后的数据,如下:3BO28资讯网——每日最新资讯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 应用程序的状态来创建交互式动态应用程序。3BO28资讯网——每日最新资讯28at.com

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

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

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

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

标签:
  • 热门焦点
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页&ldquo;充值中心&rdquo;入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 华为Mate60标准版细节曝光:经典星环相机模组回归

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
Top