Java消息中間件----ActiveMQ入門①

 

 

 

 

 

 

 

 

一 首先到ActiveMQ下載安裝包html

Active官網地址http://activemq.apache.org/activemq-5150-release.htmljava

如圖所示,有兩個下載的連接,咱們下載第一個,用於Windows平臺。apache

下載好了之後,選擇好安裝的位置,我這裏是安裝在了E:\software place\activeMq\apache-activemq-5.15.0瀏覽器

進入到對應的bin文件夾下,例如個人是E:\software place\activeMq\apache-activemq-5.15.0\bin\win64session

而後啓動activemq.battcp

在瀏覽器輸入127.0.0.1:8161能夠進入activeMQ界面url

咱們使用的是bat文件方式打開,這樣子咱們整個使用過程當中bat文件不能關閉的,咱們還能夠用服務方式啓動命令行

在bin目錄下選擇InstallService.bat以管理員命令啓動3d

而後命令行cmd下輸入services.msc打開服務窗口能夠看到activeMQ服務出現了。xml

將服務啓動後,就能夠在進程裏看見運行的服務,能夠設置爲開機自動啓動。

 

二 Java關於activeMQ的實現

先來看看JMS在java中的實現接口

利用這些接口,能夠用java代碼是實現消息的發送接受,實現消息生產者與消費者

首先須要導入activeMQ的相關包

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

① 先來實現消息生產者

package com.myself.jms.queue;

import org.apache.activemq.ActiveMQConnectionFactory;


import javax.jms.*;

/**
 * Created by Administrator on 2017/7/15.
 */
public class AppProducer {
    private static final String url="tcp://192.168.1.101:61616";
    private static final String queueName="queue-test";
    public static void main(String[] args)throws JMSException {
        //1,建立ConnectionFacytory
        ConnectionFactory  connectionFactory = new ActiveMQConnectionFactory(url);

        //2,建立鏈接Connection
        Connection connection = connectionFactory.createConnection();

        //3,啓動連接
        connection.start();

        //4建立會話
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //5,建立一個目標
        Destination destination = session.createQueue(queueName);

       //6,建立一個生產者
        MessageProducer producer = session.createProducer(destination);

        for(int i=0;i<100;i++){
            //7,建立消息
            TextMessage testMessage= session.createTextMessage("Text"+i);
            //8發佈消息
            producer.send(testMessage);
            System.out.println("發送消息"+testMessage.getText());
        }
        //9,關閉鏈接
        connection.close();
    }
}

  運行後能夠看到發送了100條消息

也能夠在activeMQ的網頁中隊列裏有100條信息

 有了生產者,也得須要消息消費者消費掉所產生的信息,產生的東西老是須要有人來處理的,不然就是一種資源的浪費了。

② 信息消費者的實現

package com.myself.jms.queue;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.transport.udp.DatagramEndpoint;


import javax.jms.*;
import javax.xml.soap.Text;

/**
 * Created by Administrator on 2017/7/15.
 */
public class AppConsumer {
    private static final String url="tcp://192.168.1.101:61616";
    private static final String queueName="queue-test";
    public static void main(String[] args)throws JMSException {
        //1,建立ConnectionFacytory
        ConnectionFactory  connectionFactory = new ActiveMQConnectionFactory(url);

        //2,建立鏈接Connection
        Connection connection = connectionFactory.createConnection();

        //3,啓動連接
        connection.start();

        //4建立會話
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //5,建立一個目標
        Destination destination = session.createQueue(queueName);

        //6 建立一個消費者
         MessageConsumer consumer = session.createConsumer(destination);

        //7建立一個監聽器
        consumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                TextMessage textMessage = (TextMessage) message;
                try {
                    System.out.println("接受到信息"+textMessage.getText());
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });

        //8,關閉鏈接
        connection.close();
    }
}

  運行後消息確實接受到了

在activeMQ的網頁中,能夠看到出隊列數目100,

 

 今天Active的初步入門就到這裏吧, 我們下次在繼續新的話題。

相關文章
相關標籤/搜索