RabbitMq高级特性

1 消息的可靠投递
在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性模式。

  • confirm确认模式
  • return退回模式
    rabbitmq整个消息投递的路径为:

producer—>rabbitmq broker—>exchange—>queue—>consumer

  • 消息从producer 到 exchange则会返回一个confirmCallback .
  • 消息从exchange–>queue 投递失败则会返回一个returnCallback .
    我们将利用这两个callback 控制消息的可靠性投递

2 可以在消费方设置ACK 手动签收消息的机制,如果消息接受成功返回trun如过失败则回退消息重新发送,知道成功为止
3 可以将队列,交换机,消息进行持久化
4 实现rabiitMq的一个集群搭建,让RabbitMq高可用
2 消费端限流
问题:为什么要使用消费端限流?
答:如果不进行消费端限流的操作假如在并发量特别大的情况下,消息过多,如果让一个消费者去接受 那么对于这个消费者的系统压力是很大的,所以我们可以对消费端限流,减少系统的压力
设置消费端限流的前提是需要我们要开启ACK手动确认签收消息的机制,然后设置prefetch属性来确认我们的限流量
3 死信队列
1 需要先设置消息或者队列的TTL(过期时间),如果没有绑定死信队列那么这条消息过期后将会被丢弃,如果绑定了死信队列,那么这条消息将会进入死信队列等待我们处理
下图DLX表示死信交换机
在这里插入图片描述
消息成为死信的三种情况

  • 当消息的TTL到期后,消息将会进入私信队列
  • 当消费者拒绝签收的时候,消息将会进入死信队列(拒接签收大概意思就是,我们在接受消息设置为手动确认接收消息,如果消费者拒绝签收消息,basicAck,并不把消息放入原队列requeue=false,那么这条消息也会进入死信状态)
  • 消息长度达到限制的时候,假如一个队列设置了接收消息的长度为10的时候,那么第11条消息将会进入死信状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值