RabbitMQ个人总结一

1、工作队列之公平分发

  1.1、使用公平分发必须关闭自动应答,ack改成手动

生产者:消费者1:消费者2:

消费者2处理的消息比消费者1多(能者多劳)


2、消息应答和消息持久化

 autoAck:Boolean类型(true、false)

true:rabbit将消息分发给消费者,就会从内存中删除

     如果杀死正在执行的消费者,就会丢失正在处理的信息

false:如果有一个消费者挂掉,就会交给另一个消费者进行处理,rabbitmq支持消息应答

 消费者发送一个消息应答告诉rabbitmq这个消息处理完成,可以删除了。之后rabbitmq就会删除内存的消息

消息应答默认是false(打开状态的)

Boolean autoAck=true;
channel.basicConsume(QUEUE_NAME, autoAck, consumer);

 
消息持久化:
Boolean durable=false;
channel.queueDeclare(QUEUE_NAME, durable, false, false, null);
durable=false不能改成true;
改成true代码不出错,但是运行会有错误
rabbitmq不允许重新定义一个存在的队列

3、订阅模式
解读:
1、一个生产者,多个消费者
2、每一个消费者都有自己的队列
3、生产者没有直接把消息发送到队列而是到了交换机
4、每个队列都要绑定到交换机上
5、生产者发送的消息 经过交换机 到达队列 就能实现一个消息被多个消费者消费

 


   

猜你喜欢

转载自www.cnblogs.com/caiwx/p/11244761.html