我将构建一个基于Java的Kafka流应用程序,该应用程序将连续侦听主题X、获取数据、执行一些基本清理并写入Oracle数据库。kafka集群在我的域之外,无法在其中部署任何代码或配置。
设计这样一个解决方案的最佳方式是什么?我遇到了Kafka Streams,但很困惑它是否可以用于"主题>流程>主题"场景?
我来到Kafka Streams,但不知道它是否可以用于"主题>流程>主题"场景?
当然。
例如,排除"过程"步骤,它是配置设置之外的两行。
final StreamsBuilder builder = new StreamsBuilder();
builder.stream("streams-plaintext-input").to("streams-pipe-output");
此代码直接来自文档
如果你想写任何数据库,你应该首先检查是否有一个Kafka Connect插件可以帮你写。Kafka Streams不应该真正用于从Kafka之外的外部系统读/写,因为它对延迟敏感。
在您的情况下,JDBC接收器连接器会很好地工作。
kafka集群在我的域之外,无法在其中部署任何代码或配置。
使用上面的任何一个解决方案,您都不需要,但您需要一些安装了Java的机器来运行连续的Kafka Streams应用程序和/或Kafka Connect工作程序。