初次嘗試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的話可以直接添加依賴:

<dependency>  
            <groupId>org.apache.activemq</groupId>  
            <artifactId>activemq-all</artifactId>  
            <version>5.9.0</version>  
        </dependency>


    如果不適用Maven只需要添加activemq-all.jar(該jar在下載的activemq的二進制分發包中已經包含)


  •  創建一個消息生產進程:

private static String providerAddress = "tcp://localhost:61616";  
    private static String messageDest = "messageDest";  
  
    @Test  
    public void messageProducer() throws JMSException, InterruptedException {  
        // 獲取連接工廠  
        ConnectionFactory connectFactory = new ActiveMQConnectionFactory(  
                providerAddress);  
        // 獲取連接  
        Connection connection = connectFactory.createConnection();  
        connection.start();  
        // 創建會話  
        Session session = connection.createSession(false,  
                Session.AUTO_ACKNOWLEDGE);  
        // 創建消息目的地  
        Destination dest = session.createQueue(messageDest);  
        // 創建消息提供者  
        MessageProducer producer = session.createProducer(dest);  
        // 通過會話創建消息  
        TextMessage message=session.createTextMessage("Hello World ActiveMQ");  
        // 發送消息  
        producer.send(message);  
        //收尾處理  
        producer.close();  
        session.close();  
        connection.close();  
    }


   通過上面的代碼注釋,可以看出一個消息生產的過程。


  •  創建一個消息消費進程

@Test  
    public void messageConsumer() throws JMSException {  
        //創建連接工廠  
        ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(providerAddress);  
        //獲取連接  
        Connection connection =connectionFactory.createConnection();  
        connection.start();  
        //創建會話  
        Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);  
        //創建消息目的地  
        Destination dest=session.createQueue(messageDest);  
        //創建消息消費者  
        MessageConsumer consumer=session.createConsumer(dest);  
        //接受消息  
        TextMessage message=(TextMessage) consumer.receive();  
        System.out.println(message.getText());  
        //收尾處理  
        consumer.close();  
        session.close();  
        connection.close();  
    }


消息消費也可以使用消息監聽的方式來接受消息,具體使用如下代碼:


consumer.setMessageListener(new MessageListener() {  
             
           @Override  
           public void onMessage(Message message) {  
               try {  
                   System.out.println(((TextMessage)message).getText());  
               } catch (JMSException e) {  
                   e.printStackTrace();  
               }  
           }  
       });  
  • 啟動程序,看效果    


    上面已經啟動了ActiveMQ服務,然后運行測試程序,這樣就可以看到控制台打印:Hello World ActiveMQ ;表示消息已經生產成功,並且已經消費。

本文出自 “野馬紅塵” 博客,謝絕轉載!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com