美文网首页
消息队列(kafka/nsq 等)与任务队列(celery)到底

消息队列(kafka/nsq 等)与任务队列(celery)到底

作者: 星丶雲 | 来源:发表于2020-08-21 15:35 被阅读0次

在和同事介绍celery时 同事说了一句“这不就是kafka吗?”。

那么YTask和nsq,celery和kafka?他们之间到底有什么不同呢?下面我结合自己的理解。简单的分析一下,如有不足请指出。

首先,nsq和kafka它们属于消息队列 celery它们属于任务队列。
其实他们都是利用队列(先进先出)的特性已经增加自己的存储功能 实现不同场景下的处理

消息队列和任务队列,最大的不同之处就在于理念的不同 -- 消息队列传递的是“消息”,任务队列传递的是“任务”

zz.png

这句话何解呢?

mq2.jpeg

我们可以放到具体的应用场景上:

  • 消息队列用来快速消费队列中的消息。比如日志处理场景,我们需要把不同服务器上的日志合并到一起,这时就需要用到消息队列。

  • 任务队列是用来执行一个耗时任务。比如用户在购买的一件物品后,通常需要计算用户的积分以及等级,并把它们保存到数据库。这时就需要用到任务队列。

从上面的例子可看出:

  • 消息队列更侧重于消息的吞吐、处理,具有有处理海量信息的能力。另外利用消息队列的生长者和消费者的概念,也可以实现任务队列的功能,但是还需要进行额外的开发。

  • 任务队列则提供了执行任务所需的功能,比如任务的重试,结果的返回,任务状态记录等。虽然也有并发的处理能力,但一般不适用于高吞吐量快速消费的场景。

    任务队列其实和远程函数调用差不多,但和thrift、grpc什么不同,它不需要定义描述文件,调用的方式也不是网络请求方式,而是利用消息队列传递任务信息。

ff2.jpg

因此可以简单认为任务队列就是消息队列在异步任务场景下的深度化定制开发。

相关文章

  • 消息队列(kafka/nsq 等)与任务队列(celery)到底

    在和同事介绍celery时 同事说了一句“这不就是kafka吗?”。 那么YTask和nsq,celery和ka...

  • Celery,Tornado,Supervisor构建和谐的分布

    Celery 分布式的任务队列 与rabbitmq消息队列的区别与联系: rabbitmq 调度的是消息,而Cel...

  • python-分布式任务队列

    celery 分布式任务队列工具 Celery是一个分布式任务队列工具,是一个异步的任务队列基于分布式消息传递 基...

  • Celery初体验

    Celery与任务队列 Celery是Python中流行的分布式任务队列。所谓分布式任务队列,是一种将任务分发到不...

  • springboot项目架构(4)activemq、rabbit

    消息队列实现 支持的消息队列 ActiveMq RabbitMq RocketMq Kafka 各个队列实现队列与...

  • 消息队列celery初探

    消息队列是网站架构中常用的组件,在异步任务、高并发等场景下使用广泛,celery是py下常用的消息队列,最近有一个...

  • Celery简介

    Celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。 Celery用于生产系统每天处理数以百万计...

  • celery学习笔记

    Celery 标签(空格分隔): celery Celery是一个分布式任务队列工具,是一个异步的任务队列基于分布...

  • 初探Celery

    初探Celery 参考自董伟明的Python Web开发实战 了解Celery前,可以先了解下任务与消息队列 Ce...

  • Python Celery学习扎记

    Celery是什么 Celery是一个管理分布式队列的工具,它封装好了常见任务队列的各种操作,能够快速进行任务队列...

网友评论

      本文标题:消息队列(kafka/nsq 等)与任务队列(celery)到底

      本文链接:https://www.haomeiwen.com/subject/gsgujktx.html