Kafka 流用例

Kafka Streams use case

我正在构建一个简单的应用程序,它按以下顺序执行 -

1) 从远程 IBM MQ 读取消息(旧系统仅适用于 IBM MQ)

2) 将这些消息写入 Kafka 主题

3) 从同一个 Kafka 主题读取这些消息并调用 REST API.

4) 将来可能会有其他消费者阅读此主题。

我开始知道 Kafka 有新的流 API,在 speed/simplicity 等方面应该比 Kafka 消费者更好。有人可以告诉我流 API 非常适合我的用例,我可以在流程中的什么时候插入它?

与 Kafka Consumer API 相比,Kafka Streams API 确实有一种简单的消费记录方式(例如,您不需要轮询、管理线程和循环),但它也会带来成本(例如,本地数据存储 - 如果您进行有状态处理)。

我会说,如果你需要一条一条地消费记录并调用REST API使用消费者API,如果你需要有状态处理,查询主题状态等使用溪流 API。

有关详细信息,请查看此博客 post:https://balamaci.ro/kafka-streams-for-stream-processing/

1) Reads messages from a remote IBM MQ (legacy system only works with IBM MQ)

2) Writes these messages to Kafka Topic

我会为 (1) 和 (2) 使用 Kafka 的连接 API。

3) Reads these messages from the same Kafka Topic and calls a REST API.

您可以使用 Streams API 以及 Kafka 的低级 Consumer API,具体取决于您的喜好。

4) There could be other consumers reading from this topic in future.

这是开箱即用的——根据第 2 步将数据存储在 Kafka 主题中后,许多不同的应用程序和 "consumers" 可以独立读取此数据。

一旦您使用了来自 IBM MQ 的消息,甚至在您的 Kafka 主题之后,您似乎没有做任何事情processing/transformation。

第一个 -> 从 IBM Mq 到您的 Kafka 主题是一种管道,并且 其次 -> 你只是在调用 REST API(我假设 w/o 任何处理)

考虑到这些事实,它似乎很适合使用简单消费者。

让我们不要仅仅因为它存在就使用技术:)