Kafka Streams用例

Avi*_*ale 3 apache-kafka apache-kafka-streams

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

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

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

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

4)未来可能会有其他消费者阅读这个主题.

我开始知道Kafka有新的流API,在速度/简单性等方面应该比Kafka消费者更好.有人可以告诉我,如果流API非常适合我的用例以及在什么时候在我的过程中我可以插上吗?

Mic*_*oll 8

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

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

我将(1)和(2)使用Kafka的Connect API.

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

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

4)未来可能会有其他消费者阅读这个主题.

这是开箱即用的 - 一旦根据步骤2将数据存储在Kafka主题中,许多不同的应用程序和"消费者"可以独立地读取这些数据.


jeq*_*eqo 7

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

我想说如果您需要逐个使用记录并调用REST API,请使用Consumer API,如果您需要有状态处理,请查询主题状态等,请使用Streams API.

欲了解更多信息,请访问以下博客文章:https://balamaci.ro/kafka-streams-for-stream-processing/

  • 仅供参考:Kafka Streams API不会强制您使用状态存储或进行有状态处理.当然,您也可以进行无状态处理(因此不需要支付当地国营商店的"成本"). (5认同)