MQ消息队列

ps:个人见解,欢迎斧正

1:是什么

顾名思义,是一种消息的队列。字面上可以看出2种意思,a:存放的是消息;b:存放方式是队列。

a:存放的是消息
说到底就是报文啊数据啊之类的。

b:存放方式是队列

遵循着先进先出的的原则。

很像工厂里的输送道。输送的带就是队列,输送的货物就是消息。

2:为什么

mq有他自己的好处。a:削峰;b:解耦。

a:削峰

在高并发的情况下,请求很可能堵到一起,但是如果加入消息队列,就能让请求排队,异步处理。


b:解耦
消息队列又叫做消息中间件,是应用的桥梁与屏障。
假设有两个在不同服务器上的应用A、B。A有功能下单入库,B有功能单子入库(之后需要根据单子购买)。 对于同一个订单,在A、B应用中有 时间的先后顺序,但是A在新增一条订单后,并不要求B立刻入库和处理。

当然,我们可以使用webservice进行开发,让B提供一个接口(保存订单),A应用在下单时,同步调用B应用接口,但是,这样A必须要有B的明确地址,耦合性较高。一旦B失败,A也要报错。如果A很快,B很慢,那么对于A端下单用户来说,下单时间=A下单时间+B入库时间,很不友好。

这时候,就可以使用mq了。添加一个消息服务器C。对于A来说,只要在下单时发送消息给C就好。对于B来说,也只要从C中获取消息就好。A和B都只要知道C的明确地址就好。对于A端用户来说,这时候的下单功能会快很多。

也不用担心B入库失败,因为mq的消息处理模式有两种:一种是接收方接收消息后,对应消息就会从消息队列中删除;另一种需要接收方进行确认,才会把对应消息从消息队列中删除,我们可以把接收方确认接收到消息放到业务代码之后,等业务代码执行无误后进行确认。


3:怎么用

其他博客有很多,这边就不贴代码了。
比较全的有朱小杰的http://www.cnblogs.com/zhuxiaojie/p/5564187.html#autoid-6-0-0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值