apache-spark - 具有微服务和火花流的软件工程流数据管道 (ETL)
问题描述
我理解微服务的方式是,其目标是帮助我们将单体分解为更小的独立服务,这些服务通过消息进行通信,从而很好地解决了可用性和扩展问题。
在 ETL 问题中,很容易将数据管道问题解释为具有用于提取 (E) 的微服务、用于转换 (T) 的微服务和用于加载 (L) 子流程的微服务。在流式传输方面,我知道可以使用队列(例如 Kafka)轻松解决此要求,其中每个微服务推送到另一个微服务以读取另一个微服务。
然而,当谈到使用 Spark 进行流式传输时,我很困惑上述 3 微服务设置会发生什么。我理解它是无效的。似乎 Spark Streaming 能够通过一项工作完成上述 3 个过程,因此我们只需要一个微服务来初始化和执行该工作。这是正确的吗?那么好处消失了,不再容易扩展,不再有高可用性和有组织的代码吗?在这种情况下如何重新引入微服务?从软件工程的角度来看,这似乎很奇怪。
解决方案
推荐阅读
- java - 如何修改部署在不同国家的spring boot rest api的业务逻辑
- mysql - 如何使用 MySQL 查询去除具有相同颜色或大小的重复记录
- angular - 如何在 Doughnutchart ng2 chart.js 中自定义百分比标签
- r - 从街道地址字符串中删除“单元号”
- python - 从 pip 安装 instapy 时出现问题
- nginx - Nginx 服务器在尝试代理传递到外部托管服务时返回 308 状态代码
- javascript - 来自 ReDos 攻击的安全正则表达式模式
- apache-kafka - service.properties中的Kafka“num.partitions”设置不生效
- c# - 如何分解字符串的一部分并将其添加到 C# 中的列表中
- c# - 具有多个术语的 Elasticsearch Nest 过滤器查询