SpringMVC消费RabbitMQ队列的示例分析

这篇文章将为大家详细讲解有关SpringMVC消费RabbitMQ队列的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

长洲ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

1.环境介绍

  • Jdk1.8.0_202

  • Spring 4.3.9.RELEASE

  • spring-webmvc 4.3.9.RELEASE

2.添加Maven依赖


   com.rabbitmq
   amqp-client
   5.6.0


   org.springframework.amqp
   spring-amqp
   2.0.12.RELEASE


   org.springframework.amqp
   spring-rabbit
   2.0.12.RELEASE


   org.springframework.retry
   spring-retry
   1.2.4.RELEASE

3.添加RabbitMQ配置

在jdbc.properties文件中加入RabbitMQ地址端口用户密码等信息
#RabbitMQ地址
mq_host=127.0.0.1
#RabbitMQ端口
mq_port=5672
#RabbitMQ虚拟主机
mq_virtual_host=/
#RabbitMQ用户名
mq_username=admin
#RabbitMQ密码
mq_password=your rabbitmq password

4.创建RabbitMQ配置文件

新建 applicationContext-rabbitmq.xml

SpringMVC消费RabbitMQ队列的示例分析

内容如下

    RabbitMQ 连接服务配置
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
        
    

    
    
        
        
        
    

5.创建监听器消费者

创建与ref="plateNumRabbitConsumer"对应的消费者类,必须添加注解@Component加入Spring管理,实例名可自定义,但必须与ref关联的名字一致;消费者类必须实现MessageListener,监听队列的变化,实现实时消费;

SpringMVC消费RabbitMQ队列的示例分析

遇到的问题

  • 同一个项目中若同时存在生产者和消费者,applicationContext-rabbitmq.xml中声明的工厂,路由,队列都无特别注意的地方;生产者需要使用到rabbit:template,消费者不需要此配置即可行

  • 若只需消费队列,在声明队列时,若rabbitmq服务中已创建过同名队列,则必须配置ignore-declaration-exceptions="true",否则项目启动时将报错

  • 监听容器的配置,需注意prefetch="1" 和 acknowledge="auto",prefetch表示单次从队列中消费的数量,prefetch=”1”,说明单次消费1条消息,若容器中配置多个监听器消费,则会公平分发;acknowledge="auto" 表示自动应答,消费完成后回复确认,改消息将从rabbitmq服务中删除,并且会自动消费下一条消息,acknowledge=" manual"表示手动应答 当消息处理失败时:会一直重发 直到消息处理成功,需要自己手动提交;否则不会继续消费;手动应答方式需要配置template的confirm-callback回调方法;

关于“SpringMVC消费RabbitMQ队列的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


标题名称:SpringMVC消费RabbitMQ队列的示例分析
文章分享:http://pwwzsj.com/article/pidjeh.html