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

MQ消息队列(二)RabbitMQ

MQ消息队列(二)RabbitMQ

首先了解RabbitMQ的成员

Producer:生产者,将消息发送到Exchange;

Exchange:交换器,将从生产者收到的消息路由到Queen;

Queen:存放消费者消费的消息;

Consumer:消费者,从Queen中获取消息;

BindingKey:绑定键,Exchange与Queen之间的的配置,换句话说就是Exchange将怎样的消息路由到Queen;

RoutingKey:路由键,Producer(生产者)将消息与路由键发送给Exchange(交换器),交换器对比Binding Key(绑定键)与Routing Key(路由键),将消息放到对应的Queen;

 简单队列 :

P:消息的⽣产者

C:消息的消费者

红⾊:队列

⽣产者将消息发送到队列,消费者从队列中获取消息。

 WORK模式: ⼀个⽣产者、2个消费者。 ⼀个消息只能被⼀个消费者获取。

 订阅模式:

解读:

1、1个⽣产者,多个消费者

2、每⼀个消费者都有⾃⼰的⼀个队列

3、⽣产者没有将消息直接发送到队列,⽽是发送到了交换机

4、每个队列都要绑定到交换机

5、⽣产者发送的消息,经过交换机,到达队列,实现,⼀个消息被多个消费者获取的⽬的

路由模式:

解读:

和订阅模式的区别在于,路由模式通过指定key来确认消息路由到那个队列;

 spring集成RabbitMQ

2:RabbitMQ配置文件service-product-rabbit-receiver-context.xml 



        
    
    
       
    
       
       
    
    
    
    
    
       











    
        
        
        
    





    
    















        
    
        
    
                




        
    
    

生产者代码:

@Resource  
private RabbitTemplate rabbitTemplate;  
public void sendMessage(CommonMessage msg){
    	 try {  
              logger.error("发送信息开始");
              System.out.println(rabbitTemplate.getConnectionFactory().getHost());  
             //发送信息  message-exchange 交换机 msg.getSource() 为 test_key 
             rabbitTemplate.convertAndSend("message-exchange",msg.getSource(), msg);
             logger.error("发送信息结束");
         } catch (Exception e) {  
         	e.printStackTrace();
         }
    }

消费者代码:

public class TestHandler  {
    @Override
    public void handlerTest(CommonMessage commonMessage) {
        System.out.println("DetailQueueConsumer: " + new String(message.getBody()));
    }
}

 注:暂时只记录了这些,后面了解到更多的相关知识再补充,如果有什么错误请评论指正,我会立即做出修改。

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

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

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