熬夜补了两篇文章,现在都四点半了.再介绍下消息队列等等太阳小老弟吧.

什么是消息队列

  消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列互交。消息会保存在队列中,直到接收者取回它.
  直接抄百科的.我复制的内容太过官方.以至于我自己都读不懂.没有关系,只管看我下面的文章.自然的就会了

消息队列介质

介质特性
MySql可靠性强,容易实现,速度慢,会造成压力
Redis(list)速度快,单挑大消息时效率低
RabbitMQ专业性强,可靠,成本高,我还没学!

消息处理机制

死循环方式:容易实现,出现故障无法及时恢复
  实效非常强.一旦有数据就可以直接处理,压力大,适用秒杀之类.因为秒杀集中在几分.时间点集中,比较适合维护.一旦有请求之后就可以立即处理.
定时任务方式:压力均分,有处理量上限
  无论入队的峰值点多么的不集中。出队的是定时执行的。会把压力进行均开。是比较流行的。多适用于订单系统,配送。间隔数量要注意把控 。例如上一个定时还没完成。就开启了新的进程。
守护进程:类似于php-fpm和php-cg,需要shell基础
  创建一个守护的进程.然后由进程来检测消息对下列中是否有内容.如果有内容的话启用出队系统.

苦衷

  关于RabbitMQ我看了一眼是需要下点狠功夫去学才行.现在时间不是很够用.还有其他的要学,REDIS,Swoole的文档也需要补.很多,嘤嘤嘤.

102.jpg

Last modification:February 18th, 2020 at 10:24 pm