gpt4 book ai didi

python - 微服务的 Airflow 架构

转载 作者:行者123 更新时间:2023-12-04 12:59:10 33 4
gpt4 key购买 nike

我当前的平台架构有一个用于下载/收集数据的微服务、一个用于 ETL 的微服务和另一个用于处理一些复杂 SQL 脚本的微服务。

我想使用 Airflow 来安排和监控工作流程。我试过了,效果很好。但是,我必须将所有功能作为任务放入一个 Airflow 容器中;这不符合当前的微服务架构。我想要的是使用 Airflow 作为调度程序并与其他微服务进行通信。

我想问一下:
将 Airflow 与微服务结合使用的最佳方式是什么?我是否应该使用 DAG 中的任务与微服务通信(发布消息,微服务将订阅)?

DAG 可以描述如下。请注意,下载数据后还有其他任务,例如验证,但我只是对其进行了简化。
DAG

最佳答案

像 Apache Airflow 这样的工作流引擎和像微服务这样的架构范式本质上是对立的。两者都是完全合法的,都有值(value),并且各有利弊,但它们是构建分布式系统的两种完全不同的方法。
你在你的评论中自己打了它:

..if I gather all functionalities of those microservices into one under airflow container, that would be monolithic.


这里违反的微服务原则被称为“ smart endpoints, dumb pipes”。
“智能微服务 A”的想法应该与“智能微服务 B”(直接或间接)通信,并且您不应该通过“智能工作流服务”将“哑微服务 A”和“哑微服务 B”连接在一起。
后者更像是 Enterprise Service Bus (ESB)Service Oriented Architecture (SOA)设计。
同样,ESB 和 SOA 各有千秋,但微服务架构是一种不同的架构,本质上是不兼容的。

关于python - 微服务的 Airflow 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61368541/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com