amqp协议:
简单队列:
P ----队列-----c
p:消息生产者
队列
c:消费者
偶合性高,生产者一一对应消费者
-------------
work queues 工作队列
一个生产者对应多个消费者
P ---队列---c2/c1/c3
生产者不费时间,消费者消费时间
(轮询机制,每个消费者消费相同的数量,round-robin)
轮询分发:
生产者:
channel.queueDeclare(queue_name,f,f,f,null)//声明
channel.basicPublish("",queue_name,nullm,‘消息‘)
消费者:
channel.Declare(queue_name,f,f,f,null)//声明
channel.basicConsume(queue_name,ture,function(){})//消费者
------
公平分发:
使用公平分发必须关闭自动应答ack
生产者:
channel.queueDeclare(queue_name,f,f,f,null)//声明
channel.basicQoc(1)//每个消费者发送消息之前,消息队列不发送下一个消息到消费者,一次只处理一个消息,限制发送给同一个消费者,不超过一条
消费者:
channel.queueDeclare(queue_name,f,f,f,null)//声明
channel.basicQoc(1)
channel.basicAck(e,false)//发送回执
$autoAck = false//自动应答改为false
channel.basicConsume(queue_name,$autoAck,function(){})//消费者
原文:https://www.cnblogs.com/yifan72/p/9695135.html