深入研究Rabbitmq&Python的芹菜:如何优化您的队列

关键课程,我在生产帖子中学习了运行RabbitMQ +芹菜的经验,深入研究了Rabbitmq&Python的芹菜:如何优化队列首先出现在数据科学方面。

来源:走向数据科学

,已经使用机器学习或大规模数据管道,您可能使用了某种排队系统。

队列让服务异步互相交谈:您发送工作,不要等待,然后让另一个系统在准备就绪时将其捡起。当您的任务不瞬间时,这是必不可少的 - 考虑长期运行的模型培训工作,批处理ETL管道,甚至是对LLM的处理请求,这些LLMS需要每次查询分钟。

那么为什么我要写这个呢?我最近将生产排队设置迁移到RabbitMQ,遇到了一堆错误,发现该文档在棘手的部分上很薄。经过相当多的反复试验,我认为值得分享我学到的东西。

希望您会发现这有用!

快速入门:队列与请求 - 响应模型

微服务通常以两种样式进行通信:经典的请求 - 响应模型或更灵活的基于队列的模型。

想象一下点披萨。在请求 - 响应模型中,您告诉服务员您的订单,然后等待。他消失了,三十分钟后,您的披萨出现了 - 但是您一直都留在黑暗中。

请求 - 反应模型

在基于队列的模型中,服务员重复您的订单,为您提供数字,并将其丢入厨房的队列。现在,您知道它正在处理,并且您可以自由地做其他事情,直到厨师掌握它为止。

基于队列的模型

这是区别:请求 - 响应使您挡住了您,直到完成工作为止,而队列立即确认并让工作在后台发生。

什么是兔子MQ?

RABBITMQ是一个流行的开源消息经纪人,可确保消息可靠地从生产者(发件人)传递给消费者(接收者)。它于2007年首次发行,并在Erlang上撰写,它实现了AMQP(高级消息排队协议),这是一种用于构造,路由和确认消息的开放标准。

python世界中的一个常见配对是芹菜 +兔子:兔子经纪人的任务,而芹菜工人在后台执行它们。

Exchange 一个 *