我要构建一个基于Java的Kafka流应用程序,该应用程序将连续侦听主题X,获取数据,执行一些基本的清理工作并写入Oracle数据库。 kafka群集不在我的域内,无法在其中部署任何代码或配置。
设计这种解决方案的最佳方法是什么?我遇到了Kafka Streams,但是对于它是否可以用于“主题>过程>主题”场景感到困惑?
答案 0 :(得分:2)
我遇到过Kafka Streams,但是对于是否可以将其用于“主题>过程>主题”场景感到困惑?
绝对。
例如,除了“处理”步骤外,它是配置设置之外的两行。
final StreamsBuilder builder = new StreamsBuilder();
builder.stream("streams-plaintext-input").to("streams-pipe-output");
此代码直接来自the documentation
如果要写入任何数据库,则应first check if there is a Kafka Connect plugin为您执行此操作。 Kafka Streams实际上不应该用于在Kafka之外的外部系统中进行读写操作,因为它对延迟敏感。
对于您而言,the JDBC Sink Connector会很好用。
kafka群集不在我的域内,无法在其中部署任何代码或配置。
虽然不需要使用上述任何一种解决方案,但是您将需要安装Java的计算机来运行连续的Kafka Streams应用程序和/或Kafka Connect worker。