写这篇博文的起因是,我在论坛宣传我开源的新项目YTask(go语言异步任务队列)时,有小伙伴在下面回了一句“为什么不用nsq?”。这使我想起,我在和同事介绍celery时同事说了一句“这不就是kafka吗?”。
那么YTask和nsq,celery和kafka?他们之间到底有什么不同呢?下面我结合自己的理解。简单的分析一下,如有不足请指出。
首先,nsq和kafka它们属于消息队列;YTask和celery它们属于任务队列。
消息队列和任务队列,最大的不同之处就在于理念的不同 -- 消息队列传递的是“消息”,任务队列传递的是“任务”。
这句话何解呢?
我们可以放到具体的应用场景上:
从上面的例子可看出:
因此可以简单认为任务队列就是消息队列在异步任务场景下的深度化定制开发。
发表评论 (对文章评论)