我目前正在计划一个应用程序的体系结构,该应用程序从Kafka主题中读取数据,经过一些转换后将数据放入RabbitMq。我是Kafka Streams的新手,它们看起来是我任务的不错选择。但问题是Kafka服务器托管在另一个供应商的地方,所以我甚至不能安装Cafka连接器到RabbitMq Sink插件。
是否可以编写不具有任何Sink点,但只处理输入流的Kafka steam应用程序?我可以在foreach操作中直接推送到RabbitMQ,但我不确定Stream在没有汇点的情况下是否能工作。
foreach
是一个Sink操作,所以要直接回答您的问题,不。
但是,Kafka Streams应该仅限于Kafka Communication。
Kafka Connect可以在任何地方安装和运行,如果你想使用的话。。。您还可以使用其他Apache工具,如Camel、Spark、NiFi、Flink等,在从Kafka消费后写入RabbitMQ,或者用您选择的语言编写任何应用程序。例如,Spring Integration或Cloud Streams框架允许在多个通信通道之间签订单一合同