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

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

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

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

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

安装Kafka

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

创建Spring Boot项目

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

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

配置Kafka

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

发送数据到Kafka

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

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

使用处理后的数据

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

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

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

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

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

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 一加Ace2 Pro官宣:普及16G内存 引领24G

    一加官方今天继续为本月发布的新机一加Ace2 Pro带来预热,公布了内存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引领,还有呢?#一加Ace2Pro#,2023 年 8 月,敬请期待。”同时
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的&ldquo;在线鉴别&rdquo;,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 疑似小米14外观设计图曝光:后置相机模组变化不大

    下半年的大幕已经开启,而谁将成为下半年手机圈的主角就成为了大家关注的焦点,其中被传有望拿下新一代骁龙8 Gen3旗舰芯片的小米14系列更是备受大家瞩
  • 半导体需求下滑 三星电子DS业务部门今年营业亏损预计超10万亿韩元

    7月17日消息,据外媒报道,去年下半年开始的半导体需求下滑,影响到了三星电子、SK海力士、英特尔等诸多厂商,营收明显下滑,部分厂商甚至出现了亏损。作为
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
Top