activeMQ使用

接触activemq初衷是准备用它来处理服务器日志,因为服务器比较多,每个服务器都有一份日志,不方便做统一管理,便想着将日志输出到消息队列,然后统一输出到指定的日志服务器,用于汇总记录。但是综合考虑后,怕影响服务器性能,或者出现其他异常导致服务器挂掉,便有点得不偿失,所以放弃了这个方案,使用了其他的实现方法。但是对于 activeMQ第一次接触,虽然技术没用上,但是把自己学习到的相关信息记录下,以便以后可以用上。

准备好对应的jar包, 可以到maven repository下载, activemq-all:5.7.0 我用的是这个版本的

安装acvieMQ, 这里用的windows版本演示,

安装成功后加压出来,进入bin目录下,根据系统选择对应的目录,我的是64位,进入win64,点击第一个启动


启动成功你会看到


打开浏览器 输入localhost:8161 进入activeMQ 后台管理界面


点击进入

默认庄户密码 都是admin,进入后点击queue  你会发现在没有数据的



直接贴代码:

消息队列分两种模式, 一种是队列模式,一种是主题模式 

两者区别在于: 

队列模式:此时我们有1,2,3,4条消息,有两个队列A,B, 此时消息的消息的去向,分别是A:1,3  B:2,4 消费者(消息的接收者)可以在生产者(消息的产生者)后面启动。

主题模式:此时我们有1,2,3,4条消息,有两个队列A,B, 此时消息的消息的去向,分别是A:1,2,3,4  B:1,2,3,4 消费者必须在生产者前面启动,否则无法接收到1,2,3,4这4条消息。

创建消息生产者


这里是发送了一百条信息

接下来是消息消费者


现在启动程序

控制台消费者接收到的数据, 同时我们再去后台管理界面看queue那一栏是否有消息



此时我们看到100条数据, 队列名字是item,也就是我们代码中自己命名的,一个消费者

到此为止,一个简单的activemq demo就创建完成。

上面是队列模式,如果想换成topic模式 把生产者消费者中


这段代码替换成 Destination destination = session.createTopic(name);

然后启动的时候必须要先启动消费者,否则只能鉴定到生产者在消费者启动后产生的消息。 如何验证,大家自己东西写一下demo便知道了, 后面会贴出spring集成activemq的代码。