spring boot操作rabbitmq的简单队列示例

需求:如下图

中间部分在此示例中只使用一个简单队列来表示,如果采用了其他队列形式,整体框架部分无需较大修改。

其中通过rabbitmq传输的数据格式是通用的json字符串的形式。

生产者

1. 使用intellij idea新建一个spring boot项目。

2. 创建java model对象Spittle

3. 创建Rabbitmq配置

在spring boot中,是可以通过application.properties中配置rabbitmq的连接信息进行自动装配连接的,在本示例中并没有采用这种方式。

参考:

spring boot实战(第十三篇)自动配置原理分析

并没有使用org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration默认配置的ConnectionFactory, RabbitTemplate,而是自己进行了新的创建

另外,由于rabbitmq传输的数据格式为json,那么为RabbitTemplate配置Message Converter,这里使用的是spring jar文件中的jackson。

4. 创建Rabbitmq的生产者

这里通过Controller-Service来模拟生产者,当访问localhost:8080/helloRabbitmq时,就会向rabbitmq的简单队列test_simple_queue发送一条message

 

RabbitMQ

 

 

 

消费者

1. 使用intellij idea新建一个spring boot项目。

2. 创建java model对象Spittle

3. 创建Rabbitmq配置

在spring boot中,是可以通过application.properties中配置rabbitmq的连接信息进行自动装配连接的,在本示例中并没有采用这种方式。

并没有使用org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration默认配置的ConnectionFactory, RabbitListenerContainerFactory,而是自己进行了新的创建

配置了RabbitListenerContainerFactory<SimpleMessageListenerContainer>。

另外,由于rabbitmq传输的数据格式为json,那么为factory配置MessageConverter,这里使用的是spring jar文件中的jackson。

4. 创建Rabbitmq的消费者

采用了消息驱动的AMQPPOJO方式来异步消费rabbitmq的message。

这里通过在Service中使用@RabbitListener注解来模拟消费者消费message,当rabbitmq的简单队列test_simple_queue中有message就会基于消息驱动的方式来异步消费message

 

最后的效果为:

生产者生产消息:

 

 

 

消息在rabbitmq的简单队列中:

 

消费者取得消息:

 

源码参考:

生产者:https://gitee.com/constfafa/rabbitmq-producer

消费者:https://gitee.com/constfafa/rabbitmq-consumer

 

参考:

RabbitMQ – How to send/receive Java object messages with Spring RabbitMq | SpringBoot

 

spring boot实战(第十二篇)整合RabbitMQ

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值