求指教!刚学rabbitmq
我们最近也在准备用消息队列
先来说下我对消息队列的理解。消息队列跟队列本质上是一个东西,因为功能不一样所以名字有区别,首先队列是一种数据结构,特点就是先进先出,后今后出,这跟堆栈刚好相反。最简单的消息队列其实也是用队列这种数据结构实现的。我们把消息按照先进先出的规则一个一个的放进队列里,这个过程叫做进队,然后在队头一个一个取出来叫做出队。
用消息队列处理并发插入数据一致性的问题,例如用户注册这个功能,假如同时有两个用户同时注册名为"bugall"的用户,这时候因为并发的原因就会都插入,结果就是出现了同账号的用户。
解耦,我们用生产机来接受用户请求,然后把用户请求放入消息队列,消费机从队列里取请求进行处理
队列不只能存消息 能存对象 值 消息队列可以看作存储消息的队列 当你的业务是分布的 并且处理的事情是先后有序的 并且不需要立即返回结果 而是可以慢慢处理 后续给结果 那么就可以用消息队列
简单点说,虽然这么说不太严谨,针对用队列来通信来说,线程间通信用queue,比如BlockingQueue,进程间通信用mq
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(3)
我们最近也在准备用消息队列
先来说下我对消息队列的理解。消息队列跟队列本质上是一个东西,因为功能不一样所以名字有区别,首先队列是一种数据结构,特点就是先进先出,后今后出,这跟堆栈刚好相反。最简单的消息队列其实也是用队列这种数据结构实现的。我们把消息按照先进先出的规则一个一个的放进队列里,这个过程叫做进队,然后在队头一个一个取出来叫做出队。
为什么用消息队列
用消息队列处理并发插入数据一致性的问题,例如用户注册这个功能,假如同时有两个用户同时注册名为"bugall"的用户,这时候因为并发的原因就会都插入,结果就是出现了同账号的用户。
解耦,我们用生产机来接受用户请求,然后把用户请求放入消息队列,消费机从队列里取请求进行处理
队列不只能存消息 能存对象 值 消息队列可以看作存储消息的队列 当你的业务是分布的 并且处理的事情是先后有序的 并且不需要立即返回结果 而是可以慢慢处理 后续给结果 那么就可以用消息队列
简单点说,虽然这么说不太严谨,针对用队列来通信来说,线程间通信用queue,比如BlockingQueue,进程间通信用mq