首页 > 解决方案 > 具有微服务和火花流的软件工程流数据管道 (ETL)

问题描述

我理解微服务的方式是,其目标是帮助我们将单体分解为更小的独立服务,这些服务通过消息进行通信,从而很好地解决了可用性和扩展问题。

在 ETL 问题中,很容易将数据管道问题解释为具有用于提取 (E) 的微服务、用于转换 (T) 的微服务和用于加载 (L) 子流程的微服务。在流式传输方面,我知道可以使用队列(例如 Kafka)轻松解决此要求,其中每个微服务推送到另一个微服务以读取另一个微服务。

然而,当谈到使用 Spark 进行流式传输时,我很困惑上述 3 微服务设置会发生什么。我理解它是无效的。似乎 Spark Streaming 能够通过一项工作完成上述 3 个过程,因此我们只需要一个微服务来初始化和执行该工作。这是正确的吗?那么好处消失了,不再容易扩展,不再有高可用性和有组织的代码吗?在这种情况下如何重新引入微服务?从软件工程的角度来看,这似乎很奇怪。

标签: apache-sparkmicroservicesstreamingetlmessage-queue

解决方案


推荐阅读