RabbitMQ
卑微的小白
这个作者很懒,什么都没留下…
展开
-
RabbitMQ消息确认和renturn机制
1、消息确认机制(confirm) 为了确保消息能够准确的发送到Broker中,RabbitMQ提供了消息确认机制。 当生产者发送消息之后,如果Borker准确收到消息,则会返回给生产者一个应答。生产者通过接收到的应答判断消息是否成功发送。 confirm机制的实现 1、通过channel开启confirm机制 2、在channel上添加监听器接受broker返回的应答信息 //开启confirm机制 channel.confirmSelect(); //添加一个确认监听 channel.addConf原创 2020-10-27 18:31:06 · 764 阅读 · 0 评论 -
RabbitMQ延迟消息
RabbitMQ中没有对消息延迟进行实现,但是我们可以通过TTL以及死信路由来实现消息延迟。 TTL(Time To Live 消息过期时间) 如果消息一直存放在队列中没有被消费并且超过了过期时间则消息将变成死信(Dead Message),后续将无法被消费。 消息成为死信的几种情况: 1、消息被Consumer拒收,并且reject方法里的参数requeue为false,则消息不会被重新放回队列,不会被其他消费者消费。 2、消息以及队列的过期时间到了 3、队列的长度满了,排在前面的消息会被丢弃或者扔到死信原创 2020-10-27 17:53:37 · 1699 阅读 · 0 评论 -
RabbitMQ的工作模式
1、简单模式 消息生产者将消息方式到队列中,消费者监听队列,如果队列中有消息,则取出消费,在消费者取出消息后队列将自动删除该消息。 2、工作模式 消息生产者将消息发送到队列中,一个队列有多个消费者监听,则多个消费者之间存在着竞争关系,消息会会被消费者谁先拿到谁先消费。高并发情况下,会产生某条消息会被多个消费者共同使用,这时可以添加一个开关(syncronize与同步锁)保证每个消息只被一个消费者消费。 3、发布/订阅模式 x表示rabbitmq的内部组件交换机,队列绑定到交换机上,消息发送到交换机中,原创 2020-10-27 16:45:50 · 119 阅读 · 0 评论