栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ高级

RabbitMQ高级

RabbitMQ高级

基础部分点击 RabbitMQ基础
演示代码下载
本文使用spring编写程序

1. 使用spring整合RabbitMQ
 定义连接对象
 定义管理交换机 队列
 定义队列
 
        
            
            
        
      定义某种类型的交换机并绑定队列
 
    



   
  消费端 监听队列 并绑定继承MessageListener类的子类进行业务操作

举例

生产端


 











    
        
    











    
        
        
        
    




消费端


    
    
    
    
    
    

在代码中

@Autowired
private RabbitTemplate rabbitTemplate;

@Test
public void testQueue() {
    rabbitTemplate.convertAndSend("routingKey", "rabbitTemplate发送消息");
}

convertAndSend方法参数


)]

2.消费端限流
   
3.TTL

Time To Live,消息过期时间设置 可以通过ttl属性来进行消息的定时失效 如果设置了消息的过期时间,也设置了队列的过期时间,它以时间短的为准。

队列过期后,会将队列所有消息全部移除。消息过期后,只有消息在队列顶端,才会判断其是否过期(移除掉)

    通过xml配置整个队列的ttl
    

        
            
        
    

2 通过MessagePostProcessor给单条消息设置过期时间

// 消息 后处理对象,设置一些消息的参数信息
MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {

   @Override
   public Message postProcessMessage(Message message) throws AmqpException {
        //1.设置message的信息
        message.getMessageProperties().setExpiration("5000");//消息的过期时间
        //2.返回该消息
        return message;
    }
};
//消息单独过期
rabbitTemplate.convertAndSend("test_exchange_ttl", "ttl.hehe", "message ttl....", messagePostProcessor);
4.死信队列

死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead
message后,可以被重新发送到另一个交换机,这个交换机就是DLX

消息成为死信的三种情况:
    队列消息长度到达限制;消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队
    列,requeue=false;原队列存在消息过期设置,消息到达超时时间未被消费;
队列绑定死信交换机:

​ 给队列设置参数: x-dead-letter-exchange 和 x-dead-letter-routing-key


    
    
        
        

        
        

        
        
        
        
    

这样一来 当消息过期后就会被转发到死信交换机 进行处理(其实还是正常的交换机相当于对过期的消息绑定一个交换机 过期了就去绑定的这个交换机 )

5. 延迟队列

延迟队列,即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。
需求:

    下单后,30分钟未支付,取消订单,回滚库存。新用户注册成功7天后,发送短信问候

TTL+死信队列 组合实现延迟队列的效果



    
    
        
        
        
    


    
        
    






    
        
    

_dlx">


    
        
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号