有个问题一直搞不明白,消息队列有到底有什么卵用

有个问题一直搞不明白,消息队列有到底有什么卵用,比如发邮件,我直接把邮件先关内容和账号信息存储到mysql或者redis,然后跑个死循环的php脚本不断去读取出来执行不就... 有个问题一直搞不明白,消息队列有到底有什么卵用,比如发邮件,我直接把邮件先关内容和账号信息存储到mysql或者redis,然后跑个死循环的php脚本不断去读取出来执行不就行了吗??? 消息队列到底用来做什么?
while($redis->getMessage($key))
{
sendEmail(......);
}
我这样难道不行吗?这样岂不是更简单吗?为何又是交换机又是路由key,搞一大堆概念 这到底是为何? 真的有这个必要吗?而且特别难理解,一直都理解不了rabbitmq的工作原理
展开
 我来答
boremy
2016-09-18 · TA获得超过770个赞
知道小有建树答主
回答量:1062
采纳率:0%
帮助的人:586万
展开全部
其实就是你说的用处,只是它封装了更多的类容,功能更加强大,性能也更好。
像你说的,自己实现一个简单的也是一样,只不过性能肯定没法比,还有比如你业务很多了怎么处理。mq这种就像抽象出来的类,和业务不相关
追问
请问rabbitmq的消费者是怎么工作的? 生产者还好理解,至少我调用了它,我通过它publish了一个消息。但是消费者怎么工作呢,消费者在没有任务时是个什么状态呢?是运行还是停止的? 就php来说,消费者也是一段很普通的代码而已,那这段代码到底谁来执行它,或者说是什么机制让“消费者”这段代码发生了执行? 难道也是一个死循环在那里一直等着吗?
追答
差不多吧。一般是设置一个linux的定时任务,定时消费你订阅的队列(按照业务逻辑处理,之后把订阅的队列消费掉)。
可以这么说,mq就相当于你写库,它主要就是publish消息分发消息
麻花腾的爸爸
2019-07-03 · 超过12用户采纳过TA的回答
知道答主
回答量:85
采纳率:100%
帮助的人:9.1万
展开全部
到你需要用的时候就知道为啥用它了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式