我们的沟通差异很大,到了我们的项目截止日期,我们的云基础架构就无法使用Kafka Streams。
我们的整个团队都不是Kafka的新手,我们可以使用一些建议来替代用我们的KStreams代码。没有KStreams的情况下,一种方法如何加入?搜索量不高。
答案 0 :(得分:1)
Kafka Streams在我们的云基础架构中不可用
听起来像您可能希望专注于修复基础结构,以便更快地开发。
另外 :另一方面,如果您没有自由部署公司的云资源,那么我建议修复公司文化,因为即使在云端,这也确实是一个好处-使用对您的应用程序有意义的工具,而无需维护或限制对基础结构和API的访问。 / rant
如果您尝试在云中运行Kafka Streams,也许Kubernetes(例如通过EKS)可以帮助您解决此问题
您可以在Kafka峰会上看到有关此演示的演示文稿-https://www.confluent.io/kafka-summit-sf18/deploying-kafka-streams-applications
我们可以用什么替换我们的KStreams代码
那么,您正尝试从kafka主题中吸收知识,并加入其他主题?如果是这样,那么Kafka Streams确实是用于此目的的,并且不需要外部调度程序,它全都嵌入在Java应用程序中,即使您仅使用Kafka Streams部署主要方法,它也可以简单地运行更多该应用程序。 ..我的意思是,尽管Spark或Flink只需要一个“提交命令”即可部署多个应用程序,但仍然需要设置和配置YARN,Kubernetes,Mesos等。
如果您仍然需要设置该 ,则最好保持Kafka Streams代码不变,并花一些时间来部署可用于 other的代码调度基础结构应用程序
如果您精通SQL,但KSQL可能会有用,但是您已经编写了Kafka Streams,因此您至少对基于Java的语言感到满意,因此我不会那样做。仅仅是因为如果您阅读了有关KSQL的生产建议,它就需要大量资源,并且专用于运行Kafka代码。我认为内存可以更好地用于其他业务应用程序。
答案 1 :(得分:0)
您可能想看看融合的KSQL。这是一个开放源代码的流SQL引擎,提供了易于使用但功能强大的交互式SQL界面,用于在Kafka上进行流处理。
或者,如果您对Scala感到满意,那么使用Spark SQL的Spark结构化流也非常适合。 (尽管java和python中都有API,但在线支持似乎很少。)