只使用Kafka构建数据处理管道有意义吗?

ehxuflar  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(361)

我正在使用kafka构建一个数据处理管道。管道为线性四级。数据量中等(需要多台机器,但不需要成百上千台;数据量是几十千兆字节)我的问题是:我能只用kafka吗,让一个流水线阶段从一个主题中消耗,然后在另一个主题上产生?我应该使用spark还是storm?为什么?当然,我更喜欢最简单的架构。如果我能和Kafka一起完成这一切,我宁愿这样。在未来,我可能需要一些额外的机器学习阶段,这可能会影响答案。我没有强大的一次性语义,我可以接受一些消息丢失和一些复制没有问题。

isr3a4wc

isr3a4wc1#

我的问题是:我能不能只用Kafka,让一个流水线阶段从一个主题消费,然后在另一个主题上生产?我应该使用spark还是storm?为什么?
从技术上讲是的,你可以。如果您准备好自己处理整个分布式体系结构。编写自己的多线程生产者,管理这些消费者等等。您还需要考虑可伸缩性、性能、耐用性等方面,使用计算引擎的好处就在这里 Storm , Spark 因此,您可以简单地将精力集中在核心逻辑上,让基础结构由它们来维护。
例如,使用 Kafka 以及 Storm 对于您的体系结构,您可以使用kafka存储数TB的数据,并将其提供给storm进行处理。如果您熟悉storm,那么示例拓扑可以如下所示:
( kafka-spout 使用来自主题的消息)-->( Bolt-A 用于处理通过喷口接收的数据并将其送入螺栓b)-->( Bolt-B 用于将处理后的数据推回到另一个Kafka主题中)
使用这样的体系结构在可伸缩性、吞吐量、性能等方面提供了很大的优势。通过一些简单的配置更改,您将能够根据自己的需求调整应用程序。

相关问题