千家信息网

SpringMVC消费RabbitMQ队列的示例分析

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章将为大家详细讲解有关SpringMVC消费RabbitMQ队列的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.环境介绍Jdk1.8.0_202S
千家信息网最后更新 2025年01月31日SpringMVC消费RabbitMQ队列的示例分析

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

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

内容如下
    RabbitMQ 连接服务配置                                                                                                                                        

5.创建监听器消费者

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

遇到的问题

  • 同一个项目中若同时存在生产者和消费者,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队列的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0