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