java学习-ActiveMQ入门

Posted java技术分享及踩坑记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习-ActiveMQ入门相关的知识,希望对你有一定的参考价值。

ActiveMQ介绍

 

    MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQRabbitMQkafkaActiveMQApache下的开源项目,完全支持JMS1.1J2EE1.4规范的JMS Provider实现。

特点:

1、支持多种语言编写客户端

2、对spring的支持,很容易和spring整合

3、支持多种传输协议:TCP,SSL,NIO,UDP

4、支持AJAX

消息形式:

1、点对点(queue

2、一对多(topic

ActiveMQ安装

我这里提供一个安装好的虚拟机:http://download.csdn.net/download/liuyuanq123/10217892
服务器运行后,我们可以直接访问到activeMQ的界面:

java学习-ActiveMQ入门

然后点击queues可以看到现在没有一条消息:

java学习-ActiveMQ入门

ActiveMQ测试
      
编写一个测试类对ActiveMQ进行测试,首先得向pom文件中添加ActiveMQ相关的jar包:

java学习-ActiveMQ入门

queue的发送代码如下:

java学习-ActiveMQ入门

接收代码:

java学习-ActiveMQ入门

然后当我们运行queue发送的时候可以看到队列里已经有一条消息了,但没有发送出去:

java学习-ActiveMQ入门

然后在运行queue 的接收端,可以看到消息已经发出了:

java学习-ActiveMQ入门

java学习-ActiveMQ入门

接着对topic进行测试,发送代码如下:

java学习-ActiveMQ入门

接收代码:

java学习-ActiveMQ入门

然后运行topic发送:

java学习-ActiveMQ入门

可以看到消息已经发送出去。再运行topic接收:

java学习-ActiveMQ入门

可以看到有了一个消费者,但是没有接收的消息,这是因为正常情况下我们的topic消息不会再服务器持久化,所以要先打开消费者,再打开生产者,这个时候我们再运行生产者发送一条消息看到消息已经接收到了:

java学习-ActiveMQ入门

java学习-ActiveMQ入门

ActiveMQ整合spring及项目中运用
      activeMQ
spring看一整合到一起使用,除了添加ActiveMQ相关的jar包外,还需要添加springjar包:

java学习-ActiveMQ入门

然后编写applicationContext-activemq.xml文件,
代码如下:

java学习-ActiveMQ入门

然后商品添加到数据库的时候,对应也要添加数据到我们的solr索引中,所以生产者应该在插入数据后创建:

java学习-ActiveMQ入门

当然,在xml文件中配置好的jmstemplatedestination也要注入进来:

java学习-ActiveMQ入门

然后消费者应该写在我们的搜索工程中,首先添加springactiveMQjar包,然后配置xml文件,再编写一个监听器,当接收到消息时,就讲数据存入索引库,xml文件代码如下:

接收消息代码:

最后同时打开测试即可。


以上是关于java学习-ActiveMQ入门的主要内容,如果未能解决你的问题,请参考以下文章

消息中间件ActiveMQ学习笔记 [Java编码MQ,消费者生产者基本模型]

消息中间件ActiveMQ学习笔记 [Java编码MQ,消费者生产者基本模型]

JAVA架构师教程包含jvm netty dubbo activemq

activemq学习总结 (转)Java消息队列--ActiveMq 实战

mq_学习_01_资源帖

java 消息机制 ActiveMQ入门实例