初次尝试ActiveMQ,实现简单的消息生产和消息消费-阿里云开发者社区

开发者社区> 开发与运维> 正文

初次尝试ActiveMQ,实现简单的消息生产和消息消费

简介:

 初次使用ActiveMQ,借助百度(近来常规方式google无法访问)搜索了JMS1.1规范阅读了一下,于是动手开始尝试实现一个消息生产和消费的示例。

    

   言简意赅,先来一个HelloWorld再说!

  1.  拜访http://activemq.apache.org/ 了解activemq的相关信息,并下载 activemq for windows

  2.  了解activemq的快速开始的手册,然后启动activemq服务,看到如下图输出,表示启动服务成功

    wKiom1PFNLTz-tNVAAFnODgud7o551.jpg

  3. 默认情况下打开浏览器访问:http://localhost:8161/admin 即可进入activemq的管理界面


下面是通过ActiveMQ实现消息生产和消息消费的具体实现:

    如果使用Maven的话可以直接添加依赖:

1
<span style="font-size:14px;"><dependency>  <br>            <groupId>org.apache.activemq</groupId>  <br>            <artifactId>activemq-all</artifactId>  <br>            <version>5.9.0</version>  <br>        </dependency><br></span>


    如果不适用Maven只需要添加activemq-all.jar(该jar在下载的activemq的二进制分发包中已经包含)


  •  创建一个消息生产进程:

1
<span style="font-size:14px;">private static String providerAddress = "tcp://localhost:61616";  <br>    private static String messageDest = "messageDest";  <br>  <br>    @Test  <br>    public void messageProducer() throws JMSException, InterruptedException {  <br>        // 获取连接工厂  <br>        ConnectionFactory connectFactory = new ActiveMQConnectionFactory(  <br>                providerAddress);  <br>        // 获取连接  <br>        Connection connection = connectFactory.createConnection();  <br>        connection.start();  <br>        // 创建会话  <br>        Session session = connection.createSession(false,  <br>                Session.AUTO_ACKNOWLEDGE);  <br>        // 创建消息目的地  <br>        Destination dest = session.createQueue(messageDest);  <br>        // 创建消息提供者  <br>        MessageProducer producer = session.createProducer(dest);  <br>        // 通过会话创建消息  <br>        TextMessage message=session.createTextMessage("Hello World ActiveMQ");  <br>        // 发送消息  <br>        producer.send(message);  <br>        //收尾处理  <br>        producer.close();  <br>        session.close();  <br>        connection.close();  <br>    }<br></span>


   通过上面的代码注释,可以看出一个消息生产的过程。


  •  创建一个消息消费进程

1
<span style="font-size:14px;">@Test  <br>    public void messageConsumer() throws JMSException {  <br>        //创建连接工厂  <br>        ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(providerAddress);  <br>        //获取连接  <br>        Connection connection =connectionFactory.createConnection();  <br>        connection.start();  <br>        //创建会话  <br>        Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);  <br>        //创建消息目的地  <br>        Destination dest=session.createQueue(messageDest);  <br>        //创建消息消费者  <br>        MessageConsumer consumer=session.createConsumer(dest);  <br>        //接受消息  <br>        TextMessage message=(TextMessage) consumer.receive();  <br>        System.out.println(message.getText());  <br>        //收尾处理  <br>        consumer.close();  <br>        session.close();  <br>        connection.close();  <br>    }<br></span>


消息消费也可以使用消息监听的方式来接受消息,具体使用如下代码:


1
<span style="font-size:14px;">consumer.setMessageListener(new MessageListener() {  <br>              <br>            @Override  <br>            public void onMessage(Message message) {  <br>                try {  <br>                    System.out.println(((TextMessage)message).getText());  <br>                } catch (JMSException e) {  <br>                    e.printStackTrace();  <br>                }  <br>            }  <br>        });  <br></span>
  • 启动程序,看效果     


    上面已经启动了ActiveMQ服务,然后运行测试程序,这样就可以看到控制台打印:Hello World ActiveMQ ;表示消息已经生产成功,并且已经消费。



本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1438640,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章