`
weitao1026
  • 浏览: 1048724 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveMQ入门

阅读更多
1.下载ActiveMQ

去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ

将apache-activemq-5.5.1-bin.zip解压缩,双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。

启动ActiveMQ以后,登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue。
3.导入jar包:




4.实例

1、发送端
Java代码  收藏代码

    import javax.jms.Connection; 
    import javax.jms.ConnectionFactory; 
    import javax.jms.DeliveryMode; 
    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; 
     
    public class Sender { 
     
        /** 创建Session */ 
        public static Session createSession() { 
            // 连接工厂,JMS 用它创建连接 
            ConnectionFactory connectionFactory = null; 
            // MS 客户端到JMS Provider 的连接 
            Connection connection = null; 
            // 一个发送或接收消息的会话 
            Session session = null; 
            try { 
                // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar 
                connectionFactory = new ActiveMQConnectionFactory( 
                        ActiveMQConnection.DEFAULT_USER, 
                        ActiveMQConnection.DEFAULT_PASSWORD, 
                        "tcp://localhost:61616"); 
                // 通过连接工厂创建连接 
                connection = connectionFactory.createConnection(); 
                // 启动连接 
                connection.start(); 
                // 创建Session 
                session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return session; 
        } 
     
        /** 创建消息发送者 */ 
        public static MessageProducer createProducer(Session session) { 
            // 消息的目的地;消息发送给谁. 
            Destination destination = null; 
            // 消息发送者 
            MessageProducer producer = null; 
            try { 
                // 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置 
                destination = session.createQueue("FirstQueue"); 
                // 消息--发送者 
                producer = session.createProducer(destination); 
                // 设置不持久化,实际根据项目决定 
                producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return producer; 
        } 
     
        /** 发送消息 */ 
        public static void sendMessage(Session session, MessageProducer producer, 
                String content) { 
            TextMessage textMessage = null; 
            try { 
                textMessage = session.createTextMessage(content); 
                producer.send(textMessage); 
                session.commit();// 提交 
            } catch (JMSException e) { 
                e.printStackTrace(); 
            } 
        } 
     
        /** 测试 */ 
        public static void main(String[] args) { 
            Session session = createSession(); 
            MessageProducer producer = createProducer(session); 
            for (int i = 0; i < 5; i++) { 
                String content = "Message---" + i; 
                System.out.println(content); 
                sendMessage(session, producer, content); 
            } 
        } 
    } 

2、接收端
Java代码  收藏代码

    import javax.jms.Connection; 
    import javax.jms.ConnectionFactory; 
    import javax.jms.Destination; 
    import javax.jms.MessageConsumer; 
    import javax.jms.Session; 
    import javax.jms.TextMessage; 
     
    import org.apache.activemq.ActiveMQConnection; 
    import org.apache.activemq.ActiveMQConnectionFactory; 
     
    public class Receiver { 
     
        /** 创建Session */ 
        public static Session createSession() { 
            // 连接工厂,JMS 用它创建连接 
            ConnectionFactory connectionFactory = null; 
            // MS 客户端到JMS Provider 的连接 
            Connection connection = null; 
            // 一个发送或接收消息的会话 
            Session session = null; 
            try { 
                // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar 
                connectionFactory = new ActiveMQConnectionFactory( 
                        ActiveMQConnection.DEFAULT_USER, 
                        ActiveMQConnection.DEFAULT_PASSWORD, 
                        "tcp://localhost:61616"); 
                // 通过连接工厂创建连接 
                connection = connectionFactory.createConnection(); 
                // 启动连接 
                connection.start(); 
                // 创建Session 
                session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return session; 
        } 
     
        /** 创建消息接收者 */ 
        public static MessageConsumer createConsumer(Session session) { 
            // 消息的目的地;消息发送给谁. 
            Destination destination = null; 
            // 消息接收者 
            MessageConsumer consumer = null; 
            try { 
                // 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置 
                destination = session.createQueue("FirstQueue"); 
                // 得到消息生成者"发送者" 
                consumer = session.createConsumer(destination); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return consumer; 
        } 
     
        /** 发送消息 */ 
        public static void receiverMessage(MessageConsumer consumer) { 
            try { 
                while (true) { 
                    // 设置接收者接收消息的时间 
                    TextMessage message = (TextMessage) consumer.receive(6 * 1000); 
                    if (null != message) { 
                        System.out.println("ReceiverMessage--" + message.getText()); 
                    } else { 
                        System.out.println("break"); 
                        break; 
                    } 
                } 
     
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        } 
     
        /** 测试 */ 
        public static void main(String[] args) { 
            receiverMessage(createConsumer(createSession())); 
        } 
    } 

5、测试结果






执行Sender:

Message---0

Message---1

Message---2

Message---3

Message---4

执行Receive:

ReceiverMessage--Message---0

ReceiverMessage--Message---1

ReceiverMessage--Message---2

ReceiverMessage--Message---3

ReceiverMessage--Message---4
分享到:
评论

相关推荐

    activeMQ入门到精通.txt

    根据提供的文件信息:“activeMQ入门到精通”,我们可以深入探讨ActiveMQ的相关知识点,包括其基本概念、安装配置步骤、核心功能特性以及应用场景等。 ### ActiveMQ简介 ActiveMQ是一款开源的消息中间件,它支持...

    JMS-ActiveMQ入门实例

    **JMS与ActiveMQ入门实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。...

    activemq 入门示例代码

    **ActiveMQ 入门示例代码详解** ActiveMQ 是 Apache 开源组织开发的一款高效、可靠的开源消息中间件,它遵循 JMS(Java Message Service)规范,支持多种协议,如 AMQP、STOMP、OpenWire 等,广泛应用于分布式系统...

    ActiveMQ入门及深入使用的例子

    ActiveMQ是中国最流行的开源消息中间件之一,它基于Java Message Service (JMS) 规范,为分布式系统提供高效、可靠的消息传递服务。本教程将引导你从基础到深入理解如何使用ActiveMQ,并通过实际的例子进行操作。 ...

    activemq入门实例,有源代码

    在“activemq入门实例”中,你将学习到以下几个关键知识点: 1. **ActiveMQ的基本概念**:ActiveMQ作为JMS提供商,它提供一个服务器端(broker)来存储和转发消息,客户端则通过连接到这个服务器来发送和接收消息。...

    SpringActiveMQ入门示例

    SpringActiveMQ入门示例是关于如何在Java环境中利用Spring框架与Apache ActiveMQ集成的一个实践教程。这个示例主要适用于开发者想要了解如何在Spring应用中使用消息队列进行异步通信和解耦。在这个项目中,开发环境...

    HETF-ActiveMQ入门手册.zip

    标题"**HETF-ActiveMQ入门手册.zip**"表明这是一个关于ActiveMQ的入门学习资源,可能包含详细的文档或教程,旨在帮助初学者理解并使用ActiveMQ。"HETF"可能是某个组织、项目或者教程系列的缩写。由于描述中并未提供...

    消息队列-activemq入门实例.zip

    《ActiveMQ入门实例详解》 在信息技术领域,消息队列(Message Queue)作为一种重要的中间件技术,被广泛应用于系统解耦、异步处理以及负载均衡等场景。Apache ActiveMQ是Apache软件基金会开发的一款开源消息代理,...

    使用ActiveMQ入门消息中间件.zip

    使用ActiveMQ入门消息中间件

    HETF-ActiveMQ入门手册.doc

    HETF-ActiveMQ入门手册.doc

    activemq 配置说明与activemq入门讲解

    在本文中,我们将深入探讨ActiveMQ的配置及其入门知识。 一、ActiveMQ简介 ActiveMQ是Apache软件基金会的顶级项目,它的核心功能是作为消息代理,负责接收、存储和转发消息。它支持多种协议,如OpenWire、AMQP、...

    ActiveMQ入门教程

    ### ActiveMQ入门教程知识点详解 #### 一、ActiveMQ概览及特性 ##### 1.1 ActiveMQ简介 - **背景**: ActiveMQ是一款基于Apache许可证的开源消息中间件,遵循了JMS 1.1规范(Java Message Service)。自上世纪80...

    ActiveMQ入门示例

    **ActiveMQ入门示例** Apache ActiveMQ是一款开源的消息中间件,它是Java消息服务(JMS)的实现,广泛应用于分布式系统中的异步通信。在这个入门示例中,我们将探讨如何使用ActiveMQ实现点对点(Point-to-Point)的...

Global site tag (gtag.js) - Google Analytics