rabbitMQ到底在实际应用中能干什么,就是单纯的发送消息吗?网上说能削峰,怎么实现的?从网上找的资料全是一个简单的消息发送接收,能不能来点详细的?还有定义了一个queue真的能进行异步传输吗?难道不是同一时刻从队列中取一条数据吗?这样的话跟正常的流程不就没区别了吗?大神看到回复一下
伪代码
RabbitMQ.Send(msg);此处消息发送成功之后就可以返回成功,具体业务是否处理此处不关心。
如果此处发送的消息是直接操作数据库,假如每秒10000次,一般数据库肯定是承受不住的,通过queue发送消息,可以将后序慢慢处理。
谢谢,有点明白了
当你的消费者完全可以处理所有请求时。时和你说的一样。
当你的服务器性能不够。来不及处理突发的流量。他就会积压消息在服务上。消费者继续可以慢慢处理。
用户就不会等待请求响应。
简单来说就是当你上消息队列后。你的服务结构会发生改变。业务会变成异步的。
用户做一个操作后他不会等待请求的响应。而是接退出。等待回调
感谢
削峰填谷-
自己实际上手操作一次能体会到了。之前玩爬虫,因为是连接外网挂vpn会不太稳定,再加上看了 rabbitMQ ,就结合用了一下
场景是 从外网爬一堆图片(没错,就是你想的那种图片),保存本地,然后再上传其他的服务器,下载和上传都会失败,且时间比较久,加了 rabbitMQ 后,下载成功后发送队列给 rabbitMQ 服务器,rabbitMQ 客户端拉队列里面的内容,然后上传,成功了销毁,失败不销毁
这种东西结合完实际应用并操作后,理解会透彻一些