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

2015-11-01 10:21:39 +08:00
 raysmond

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

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

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

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

才发现原来这篇文章挖坟了,恕罪恕罪。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/232625

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX