芹菜任务(芹菜工人)与微服务(独角兽+码头工人)

时间:2019-12-02 10:46:14

标签: docker flask celery microservices docker-swarm

我目前有一个基于Flask和Celery的服务(其余API)(在一个集群内的docker容器中)。

此服务负责在芹菜工作者中执行多个任务。 这种方法的问题在于,所有任务代码必须都必须与运行的服务相同(并耦合到),同时也不能与celery worker共享(因为它们共享相同的docker映像)

我想知道将这些任务/模块解耦到不同的flask / falcon微服务(在不同的docker服务中)是否是更好的方法。在这种情况下,任务将通过GW的请求(在celery任务中(解除对网关的阻塞))通过GW的请求委派给每个微服务API, 但实际任务将在各自的容器上运行由金枪鱼支持。

最终,我在这里看到的问题是celery任务将被其他服务的rest调用阻塞,直到它们返回,除非它们以某种方式异步运行,这就是celery的目的。

最后一种选择是更好的方法吗?从docker-swarm扩展服务比在celery上更好/更正确地扩展服务?为什么?

谢谢!

0 个答案:

没有答案