Apache ActiveMQ

2019-11-07 16:02:54来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Apache ActiveMQ

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

 下载Apache ActiveMQ服务

 

 

下载后将zip 压缩包解压,将这个解压缩后的文件夹拷贝到指定位置,我本人的服务都在c盘下的service文件夹

找到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();

                }

            }

        }

    }

}


原文链接:https://www.cnblogs.com/firefuck/p/11813864.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Netty与RPC

下一篇:【Java必修课】HashMap性能很好?问过我EnumMap没