扫码关注官方订阅号
求指教!刚学rabbitmq
走同样的路,发现不同的人生
我们最近也在准备用消息队列
先来说下我对消息队列的理解。消息队列跟队列本质上是一个东西,因为功能不一样所以名字有区别,首先队列是一种数据结构,特点就是先进先出,后今后出,这跟堆栈刚好相反。最简单的消息队列其实也是用队列这种数据结构实现的。我们把消息按照先进先出的规则一个一个的放进队列里,这个过程叫做进队,然后在队头一个一个取出来叫做出队。
用消息队列处理并发插入数据一致性的问题,例如用户注册这个功能,假如同时有两个用户同时注册名为"bugall"的用户,这时候因为并发的原因就会都插入,结果就是出现了同账号的用户。
解耦,我们用生产机来接受用户请求,然后把用户请求放入消息队列,消费机从队列里取请求进行处理
队列不只能存消息 能存对象 值 消息队列可以看作存储消息的队列 当你的业务是分布的 并且处理的事情是先后有序的 并且不需要立即返回结果 而是可以慢慢处理 后续给结果 那么就可以用消息队列
简单点说,虽然这么说不太严谨,针对用队列来通信来说,线程间通信用queue,比如BlockingQueue,进程间通信用mq
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我们最近也在准备用消息队列
先来说下我对消息队列的理解。消息队列跟队列本质上是一个东西,因为功能不一样所以名字有区别,首先队列是一种数据结构,特点就是先进先出,后今后出,这跟堆栈刚好相反。最简单的消息队列其实也是用队列这种数据结构实现的。我们把消息按照先进先出的规则一个一个的放进队列里,这个过程叫做进队,然后在队头一个一个取出来叫做出队。
为什么用消息队列
用消息队列处理并发插入数据一致性的问题,例如用户注册这个功能,假如同时有两个用户同时注册名为"bugall"的用户,这时候因为并发的原因就会都插入,结果就是出现了同账号的用户。
解耦,我们用生产机来接受用户请求,然后把用户请求放入消息队列,消费机从队列里取请求进行处理
队列不只能存消息 能存对象 值 消息队列可以看作存储消息的队列 当你的业务是分布的 并且处理的事情是先后有序的 并且不需要立即返回结果 而是可以慢慢处理 后续给结果 那么就可以用消息队列
简单点说,虽然这么说不太严谨,针对用队列来通信来说,线程间通信用queue,比如BlockingQueue,进程间通信用mq