感觉自己有点废了的感觉,学东西没啥动力,而且也不知道学什么,试着看了一会的数据结构,但是确实静不下心,很浮躁。打开idea也不知道该干啥。但是还是觉得逼也要逼自己学点东西,然后就想着学下ActiveMQ吧,因为前几天看springboot的官方文档看到了这部分的内容,而且自己对JMS这块,确实了解也不多,所以今天就简单的学习一下好了,算是个入门吧!其实ActiveMQ据说使用比较少了,我上家公司的消息队列使用的是rocketMQ,此外rabbitMQ好像用的也比较多,自己对这方面不是特别的了解。
新建项目前,先本地安装下activeMQ,然后启动
这里可以看到一些启动的信息,而且也显示pid为31411的进程已经启动了。activemq默认的端口号是61616,我们查看下是否启动成功,下面的图显示的61616端口已经在使用了。
接下来通过activemq后台查看下相关信息,在浏览器输入http://localhost:8161/admin,然后输入用户名和密码(用户名和密码都是admin)
打开idea新建一个springboot项目,根据需要选择相应的依赖,本项目的pom文件如下:
这里声明一下,因为我本地的mysql出了问题暂时没办法使用,所以选择的是本地的postgresql,但是实际这个项目是没有使用到数据库,虽然配置文件也添加了数据库的配置,但是项目中没有数据库的交互。有没有数据库交互主要还是看消息队列的应用场景。
application.properties
说一下我的业务吧,其实非常非常简单,就是通过浏览器访问触发产生一个消息队列,然后消息生产者发送消息,消息的消费者监听改消息队列,并接收消息,最后对消息进行处理,当然为了偷懒我都没写…..自己也只是试试能不能成功,后期有机会再补吧
先创建消息的生产者和消费者两个类
消息队列的生产者
消息队列的消费者
其实这里注入UserServcie只是示例代码,主要还是看你对接收到的消息准备如何处理,如果你要写库,肯定应该注入mapper,如果是写redis那么应该注入redis相关的bean。
还是写个controller以便触发消息队列生产者发送一个消息
然后是UserServiceImpl,以后如果没有必要service只贴实现类的代码
项目启动后,浏览器输入 localhost:8080/user/add/12,。然后注意控制台输出
然后进入到activeMQ的后台查看下,我们刚才发送和接收的消息队列情况
这里我们可以看到只有一个消费者,消息队列的排队和出队信息都为1,如果我们刷新浏览器,即重复访问localhost:8080/user/add/12,就会看到Messages Enqueued和Messages Dequeued的值是随着访问次数不断变化的。
好了,今天关于springboot整合ActiveMq就到这里了,入门感觉还是很简单,因为我还没有仔细看API,很多方法还不是很了解,另外生产者和消费者也存在多个的情况,这些都是没用学习到的。只能以后有时间再来学习吧!!最近确实不怎么想学习,感觉有点浮躁,不知道是不是夏天的原因。如果各位小伙伴也有同样问题的话,大家可以交流一下哈~~~~谢谢大家!
领取专属 10元无门槛券
私享最新 技术干货