rabbitmq原理和架构,rabbitmq异步发送原理?

用户投稿 134 0

关于“rabbitmq原理php”的问题,小编就整理了【3】个相关介绍“rabbitmq原理php”的解答:

rabbitmq异步发送原理?

rabbitmq基本原理,AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API(例如JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。

rabbitmq持久化原理?

rabbitmq持久化分为三个部分: 交换器的持久化、队列的持久化和消息的持久化。

队列持久化是定义在队列的durable参数来实现的,durable为true时,队列才会持久化。

消息持久化可以通过消息属性deliveryMode来设置是否持久化,在发送消息时通过basicPublish的参数传入。

同队列一样,交换器也需要在定义时设置持久化标识,否则在Broker重启后将丢失。

rabbitmq延迟队列原理?

延时队列最重要的特性体现在它的延时属性上,队列内部是有序的,延时队列中的消息是希望在到了指定时间之前或之后

1、用户下了订单,十分钟之内未进行支付则自动取消订单

2、新创建的店铺,如果在十天之内都没有上架商品,则发送消息进行提醒

3、用户注册账号成功后,如果半个月没有登录,则发送消息进行提醒

4、用户发起退款,如果三天之内都没有得到处理,则发送消息通知相关运营人员进行处理

5、预定会议后,需要在预定的时间点前十分钟通知各个与会人员参与

上面的这些场景都有一个特点,需要在某个时间发生之前或者之后完成某一项任务,例如发生订单生成时间,在十分钟之后需要检查该订单的支付状态,如果订单未进行支付,需要将该订单关闭,理论上我们通过定时任务,一直轮询数据,每秒都查一次,取出所有十分钟之后未支付的订单,然后关闭就好了,如果数据量比较少,使用定时任务确实是一个不错的选择,但是,如果数据量比较大怎么办呢,轮询大量的数据对数据库的压力是很大的,并且实时性也不好(轮询大量数据需要时间),这样就无法满足业务要求,并且性能低下.这种情况下我们就可以使用 RabbitMQ 的延时队列了

到此,以上就是小编对于“rabbitmq原理php”的问题就介绍到这了,希望介绍关于“rabbitmq原理php”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!