eth*_*nny 3 java apache-kafka apache-kafka-streams
我正在研究POC转换现有的Flink应用程序/拓扑以使用KafkaStreams.我的问题是关于部署.
具体来说 - 在Flink中,将"工作节点"添加到flink安装中,然后为拓扑添加更多并行化以跟上不断增加的数据速率.
随着数据速率的增加,如何增加KStream容量?KStreams会自动处理吗?我是否会启动更多流程(ala Micro-services)?
或者我错过了这里的大局?
我是否会启动更多流程(ala Micro-services)?
简短的回答是肯定的:
有关更多详细信息,请参阅http://docs.confluent.io/3.0.0/streams/developer-guide.html#elastic-scaling-of-your-application中的Kafka Streams文档(遗憾的是Kafka Streams上的Apache Kafka文档还没有这些细节.
或者我错过了这里的大局?
大局观是图片实际上很好而且很小.:-)
所以让我添加以下内容,因为我觉得许多用户对其他相关技术的复杂性感到困惑,然后真的不希望你能以更简单的方式进行流处理(包括其部署),就像你可以用Kafka Streams:
Kafka Streams应用程序是一个普通的普通旧Java应用程序,碰巧使用Kafka Streams库.现有流处理技术的一个关键区别是,通过使用Kafka Streams库,您的应用程序变得可扩展,具有弹性,容错等,而无需像您那样需要特殊的"处理集群"来添加计算机.为Flink,Spark,Storm等做.Kafka Streams部署模型更简单,更容易:只需启动或停止应用程序的其他实例(即字面上相同的代码).这适用于任何与部署相关的工具,包括但不限于Puppet,Ansible,Docker,Mesos,YARN.您甚至可以通过运行手动执行此操作java ... YourApp.