RabbitMQ个人总结一

mac2022-06-30  26

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、生产者发送的消息 经过交换机 到达队列 就能实现一个消息被多个消费者消费  

 

 

   

 

转载于:https://www.cnblogs.com/caiwx/p/11244761.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)