RabbitMQ集成Spring配置文件详解

一、rabbitmq 配置文件 在web 项目开发过程中,一般分为生产者配置文件和消费者配置文件。

一、准备工作

安装好rabbitmq,并在项目中增加配置文件 rabbit.properties 内容如下:

rmq.ip=192.188.113.114   
rmq.port=5672
rmq.producer.num=20
rmq.manager.user=admin
rmq.manager.password=admin

二、生产者配置文件:producer.xml

  1. 配置连接类的bean
    
            
            
           
           
           
       
  1. spring amqp默认的是jackson 的一个插件,目的将生产者生产的数据转换为json存入消息队列,由于fastjson的速度快于jackson,这里替换为fastjson的一个实现,(可以替换成任意的MessageConvert实现)

  1. spring template 声明, durable:是否持久化 ; exclusive: 仅创建者可以使用的私有队列,断开后自动删除;auto_delete: 当所有消费客户端连接断开后,是否自动删除队列.。也可以在配置时指明默认使用的exchange与routingkey、·

  1. 队列声明,使用name属性或者id属性指定队列名。durable属性设置是够将消息持久化,exclusive属性设置消息队列是否是独占的

		
            
                60000
            
              
        
	
  1. 配置exchange

direct

  
	      
	          
	    
 

fanout

  
	      
	          
	      

topic

    
		
			
		

在子标签中声明绑定键与队列的对应关系

  1. 生产者(发送端)代码:
@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();
         }
    }

rabbitTemplate发送消息时若不指定exchange和routingkey则使用配置时默认的。

三、消费者配置

  1. 声明消息队列的服务端连接,ConnectionFactory的配置与生存者相同

  1. 配置队列的中消息的处理类
	

类内容

@Component("refreshSingleStatisticJmsListener")
public class RefreshSingleStatisticJmsListener implements MessageListener {
    @Override
    public void onMessage(Message message) {
               ...
    }
}

监听类需要实现MessageListener接口并重写onMessage方法,方法的入参Message中包含了消息的载荷(一个字节数组,请根据需要进行反序列化)。

  1. 绑定监听的队列
	

		

        
	

子标签的ref属性指定监听处理类,queues指定被监听的队列。

这样当监听的队列中有消息时,消息就会被取出交给监听消息的队列进行相应操作。

你可能感兴趣的:(rabbit,mq)