
手把手教你学会RabbitMQ之SpringBoot的整合
阿粉之前已经是教给大家如何安装RabbitMQ,如何写一个生产者,如何写一个消费者,而接下来的这篇文章,详细讲解一下如何使用队列和交换机进行不同的发布消息以及消费消息,以及怎么整合SpringBoot和RabbitMQ以及他们的工作模式吧。
1. 简单消息模式
下面阿粉就只用一个项目把所有类型的交换机全部都加入到一个SpringBoot项目中来,我们首先需要创建的就是一个Config类,而这个Config类中将会把所有的工作模式集中在这里。
创建个SpringBoot项目,然后配置pom.xml文件,在中间加入我们的依赖Jar。
加入依赖环境,配置启动配置。
然后我们就开始写个简单消息模式的配置
简单发消息的Producer和Consumer
阿粉不知不觉的调用了竟然有7次,
这么多了,那么咱们赶紧都给他消费了吧。
这一口气怎么都给我消费光了呢?是不是有点不厚道。
@RabbitListener注解指定目标方法来作为消费消息的方法,通过注解参数指定所监听的队列,而我们给的这个队列名字也很简单SIMPLE_QUEUE_NAME,发现里面有消息,我知道了,我就要开始消费了,你给我一条,我给你消费一条。
上图也是官网上给出的简单模式的消息队列,就是你发一条,我消费一条。
Work(工作)模式
工作模式这个其实更简单,就是,一个生产者,然后整出了2个消费者去消费,大家可以在消费者里面输出内容,然后循环调用生产者,一口气给他生成个100条,然后看消费者是怎么调用的,阿粉相信大家对这个模式肯定理解是非常到位的,因为,确实是随机的,如果你不相信,大家可以看看。
在工作模式的时候,大家一定要注意一点,那就是一个队列中一条消息,只能被一个消费者消费
发布订阅模式
接下来我们先吧配置给大家放上,大家一定是希望看到这个内容,毕竟拿过来就可以用的。
这种模式比较有意思,和之前的工作模式是不一样的,因为发布了一条消息,两个消费者那是都能消费的,为什么呢?那就是上面的一个bind方法,在这个方法里面,实际上相当于把消息发给了交换机,而交换机帮我们做了一件事情,那就是根据绑定来发送,我们再来试试看。
代码写出来
Consumer
Producer
大家肯定也都很好奇,为什么呢?之前阿粉还专门说了一句话一个队列中一条消息,只能被一个消费者消费,但是你现在仔细看一下,这种发布订阅模式,他发给了谁?是不是交换机,那交换机中你自定义绑定了什么?是不是两个不同的队列,一个是队列First,一个是队列Second,所以,对于生产者来说,他只是发布了一条消息,但是他把消息发布到了交换机中,而交换机是根据你绑定队列数来进行消息的消费的,这样想的话,是不是就很明确了。
今天阿粉也不给大家讲后三种了,因为一次学的太多了,敲代码容易记不住,阿粉下一篇文章会继续带大家认识路由模式,Topic模式,还有RPC模式,如果大家迫不及待的想学习,欢迎大家来点个赞。
文献参考
《RabbitMQ官方文档》
《如何学习RabbitMQ的六种工作模式》
《百度》
文章转载自公众号:Java极客技术
