V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
raysmond
V2EX  ›  问与答

使用 RabbitMQ 有什么好的应用场景?

  •  
  •   raysmond · 2015-11-01 10:21:39 +08:00 · 16056 次点击
    这是一个创建于 3311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    说说你们都用 RabbitMQ 用来做什么?我是想在网站中用它做点事,不知道什么场景比较或非常合适。

    9 条回复    2017-05-22 12:11:12 +08:00
    paicha
        1
    paicha  
       2015-11-01 10:28:54 +08:00
    不都是根据业务场景的需求找工具么?本末倒置了吧?
    raysmond
        2
    raysmond  
    OP
       2015-11-01 10:31:09 +08:00
    @paicha 主要想调查一下大家用它来做什么
    znoodl
        3
    znoodl  
       2015-11-01 11:49:47 +08:00 via iPhone
    第一,你的业务需要用到消息队列
    第二,消息需要持久化,重启服务能继续执行未完成的任务
    第三,可能有大量的消息需要处理, rabbitmq 的性能能够满足

    PS:如果不需要持久化还是没有用 rabbitmq 的必要,因为比较麻烦
    slixurd
        4
    slixurd  
       2015-11-01 12:21:07 +08:00
    需要最终一致性的场景
    有的任务占用本机资源,而且不关心返回结果,这些扔进消息队列就好了
    vainly
        5
    vainly  
       2015-11-01 13:32:07 +08:00
    我说分布计算用到它了,你信么
    sleeperqp
        6
    sleeperqp  
       2015-11-01 14:13:11 +08:00
    异步任务可以使用吧~~
    比如说一个任务需要跑很久 不能当时返回 然后就可以使用这种消息队列
    - -当时的组合是
    celery+rmq
    HentaiMew
        7
    HentaiMew  
       2015-11-01 18:30:38 +08:00
    因为消息服务的的通信协议和规则很随意而且是异步的,所以其实可以做很多很多事。
    例如:
    注册用户时候,发送激活邮件。
    监控应用中抛出的异常,邮件通知管理员。也就是增加监控功能,且一个消息服务可以监控无数个应用。
    异构型架构系统间的各服务通信,因为消息服务于平台或者语言无关,典型的应用在 SOA 分布式体系的各个服务之间,可以做到,我依赖你,但是我可以不在乎你是否在运行,的关系。
    例如,微信的抢红包,淘宝的订单,铁道部的购票等,如果不丢给队列排队处理,突然性的高并发会有让应用或者数据库瘫痪的风险。
    但是上述并不是只有消息服务能做,也没有消息服务能做,但是别的手段做不到的事情。
    非常建议你学习一下,我以前学 AMQ 就是做过应用的异常监控。
    lightening
        8
    lightening  
       2015-11-01 18:42:25 +08:00
    通知
    dangyuluo
        9
    dangyuluo  
       2017-05-22 12:11:12 +08:00   ❤️ 1
    其实很简单,一种应用是:因为很多任务是需要花费大量时间的,比如你设计一套系统,要分别发送 100 封邮件给不同的人。在用户点击发送按钮之后,如果在完成这 100 封邮件后才反馈给用户发送完成,那用户体验简直崩溃。因此此时你将这个任务添加到 rabbitMQ 队列里,前台立即返回给用户说成功,后台用 python 慢慢发送就好。

    @vainly 做分布式也是不错的想法,我看过 Gatech 一个机器人实验室里,用 rabbitMQ 做 multi-agent 分布式机器人控制策略派发服务。

    才发现原来这篇文章挖坟了,恕罪恕罪。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:51 · PVG 06:51 · LAX 14:51 · JFK 17:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.