Py学习  »  MQ

为什么要使用rabbitmq或类似的方法而不是python内置的多处理队列?

Simon • 4 年前 • 986 次点击  

我有一个任务生成器和多个工人来使用这些任务。很多地方都推荐拉比麦和/或芹菜。然而,python有一个内置的多处理队列,可以使用管理器/代理在ip/端口上共享。使用类似rabbitmq的东西有什么好处?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54861
 
986 次点击  
文章 [ 1 ]  |  最新文章 4 年前
StuartLC
Reply   •   1 楼
StuartLC    4 年前

RabbitMq是一个企业级工具,通常单独部署在进程外服务器/vm/容器上,并在企业服务总线空间中发挥作用。

  • Rabbit以可靠的消息传递为目标-例如,消息被持久化,集群中的节点可以重新启动而不会丢失消息。
  • 支持多种 messaging topologies
  • 可以通过向群集添加多个节点来缩放卷
  • 允许使用路由密钥或头筛选器将消息有条件路由到队列
  • 不可知客户端技术,即客户端可以位于支持AMQP协议的任何平台上
  • 有广泛的扩展和工具,例如 shovels 允许跨多个RabbitMQ集群复制消息。

我不是Python专家,但据我所知 multiprocessing package ,它充当在工作进程和线程之间分配工作的管理器,因此IMO将被视为更本地的系统关注点,而不是“企业”级别。 e、 g.你需要 handle persistence ,也就是说,这样消息不会在崩溃/重新启动期间丢失,并且可能需要构建自己的管理和监视工具。