apache-kafka-streams - 用于大容量数据处理的 Spring Kafka 或 Kafka 流 Spring boot 应用程序
问题描述
我正在使用 Spring boot、Kafka 和 QuickFIX/J 为银行创建一个大容量 JSON 数据处理应用程序。这是我第一次使用 Kafka 和 QuickFIX/J 等技术,无法决定我应该使用普通的 Kafka spring 还是 Kafka 流或 spring 云流。这是要求:
- 从多个 Kafka 主题中读取数据
- 处理数据并将其发送到 QuickFIX/J 启动器,该启动器进一步将其发送到外部 FIX 引擎
- QuickFIX/J 接收器从外部 FIX 引擎接收数据并将其再次写回多个 Kafka 主题,但这次不同
我看过的教程/文章说,如果您同时拥有消费者/生产者,执行大量数据流并希望实现一次处理,那么 Kafka 流或 Spring Cloud 流是很好的。但是,这里我需要在处理后将数据发送给外部方,接收它然后写入 Kafka 主题。
使用 Kafka 流是一个不错的选择吗?还是我应该与普通的生产者和消费者一起使用spring kafka?
解决方案
Spring Cloud Stream 只是 Spring 之上用于 Apache Kafka 的更高级别、固执己见的抽象。它可以处理您的用例(有几个“接收器”示例应用程序)。
类似地,Kafka Streams 不一定必须向 Kafka 输出(尽管这是它的设计目的)。
最快的入口可能是 Spring Cloud Stream(或 Spring for Apache Kafka with Spring Boot),因为大多数 cookie-cutter 配置都已为您提供,您只需专注于业务逻辑即可。
推荐阅读
- python-3.x - 从文件导入数据并将其导出到 Prometheus
- javascript - 如何在 Typescript 中使用 Nullish Coalescing
- wordpress - 在 woocomerce 购物车中显示两行价格
- swift - 如何从 ObservedObject ViewModel 调用数据加载器方法以显示在 SwiftUI 列表中?
- python - 代码在 Jupyter Notebook 中运行,但不在 Python 中
- angular - 为什么我的 json-server 找不到图像?
- laravel - 第一个队列过程完成后,Laravel 队列通过太多尝试错误
- css - 禁用 Angular Material 滑块并将滑块值设置为最小值
- c++ - C ++逐个字符写入unicode(wchar_t)字符到文件导致空文件
- xpages - XPages - 重复控制 - 通过 xe:pagerAddRows 显示更少的行可能吗?