Apache ActiveMQ

JMS即Java消息服務(Java Message Service)應用程序接口,是一個Java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通訊。Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。java

 Apache ActiveMQApache軟件基金會所研發的開放源代碼消息中間件;因爲ActiveMQ是一個純Java程序,所以只須要操做系統支持Java虛擬機,ActiveMQ即可執行。apache

 下載Apache ActiveMQ服務服務器

 

 

下載後將zip 壓縮包解壓,將這個解壓縮後的文件夾拷貝到指定位置,我本人的服務都在c盤下的service文件夾session

找到C:\service\apache-activemq\bin\win64下的activemq.bat文件雙擊便可啓動activemq服務器,以下圖異步

 

 說明已經啓動完畢,能夠登陸主頁面查看ActiveMQ的相關內容,若是對話框一閃而過則須要配置環境變量分佈式

打開網頁,在地址欄輸入http://127.0.0.1:8161操作系統

 

 用戶名,密碼都是admin開放源代碼

並將apache-activemq目錄下的activemq-all.5.15.10.jar拷貝到工程中lib文件夾下,便可使用ActiveMQ的全部功能。線程

 

 

ActiveMQ點對點消息實現:使用方式首先啓動消息生產者發送消息,而後啓動消費者接收消息中間件

建立JMSProducer.java(消息生產者)

package com.kingsoft.activemq.unit01;

 

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.MessageProducer;

import javax.jms.Session;

import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;

import org.apache.activemq.ActiveMQConnectionFactory;

 

/**

 *

 * @ClassName: JMSProducer

 * @Description: TODO (消息生產者)

 * @author A我去

 * @date 2019年10月11日下午11:16:53

 */

public class JMSProducer {

 

    private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;

    private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;

    private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;

    private static final int SENDNUM = 10; //發送消息的數量

   

    /**

     *

     * <b>Description</b><br>

     * (發送消息)

     * <br>

     * -------------------------------------------------<br>

     * <b>A我去  2019年10月11日 下午11:30:44</b>

     */

    public static void sendMessage(Session session, MessageProducer producer)

throws Exception{

        for(int i=0;i<JMSProducer.SENDNUM;i++) {

            TextMessage message = session.createTextMessage("ActiveMQ 發送的消息"+i);

            System.out.println("發送消息:"+"ActiveMQ 發送的消息"+i);

            producer.send(message);

        }

    }

   

    public static void main(String[] args) {

        ConnectionFactory connectionFactory; //鏈接工廠

        Connection connection = null; //鏈接

        Session session = null; //會話(接受或發送消息的線程)

        Destination destination; //消息目的地

        MessageProducer producer; //消息生產者

       

        //1.實例化鏈接工廠

        connectionFactory = new ActiveMQConnectionFactory(

JMSProducer.USERNAME, JMSProducer.PASSWORD, JMSProducer.BROKEURL);

        try {

            //2.經過鏈接工廠獲取鏈接

            connection = connectionFactory.createConnection();

            //3.啓動鏈接

            connection.start();

            //4.建立Session

            session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);

            //5.建立消息隊列

            destination = session.createQueue("first-quque1");

            //6.建立消息生產者

            producer = session.createProducer(destination);

            //7.發送消息

            sendMessage(session, producer);

            //8.session提交

            session.commit();

        } catch (JMSException e) {

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        }finally {

            //關閉session

            if(session!=null) {

                try {

                    session.close();

                } catch (JMSException e) {

                    e.printStackTrace();

                }

            }

            //關閉鏈接

            if(connection != null) {

                try {

                    connection.close();

                } catch (JMSException e) {

                    e.printStackTrace();

                }

            }

        }

    }

}

相關文章
相關標籤/搜索