zoukankan      html  css  js  c++  java
  • ActiveMQ 入门使用实例

    1.下载ActiveMQ

    去官方网站下载:http://activemq.apache.org/download-archives.html

    2.运行ActiveMQ

    解压缩apache-activemq-5.9.0-bin.zip,然后双击apache-activemq-5.9.0inactivemq.bat运行ActiveMQ程序。

    3.在Eclipse 创建项目并运行

    如果是使用 Maven 项目,则在pom.xml 中配置

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

    或者 直接创建项目,导入 activemq-all-5.9.0.jar ,以及其日志依赖包

    4.创建一个消息队列

    Consumer.java
    package com.panie.mq.queue;
    
    import java.util.Date;
    
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MapMessage;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    
    import org.apache.activemq.ActiveMQConnection;
    import org.apache.activemq.ActiveMQConnectionFactory;
    
    public class Consumer
    {
        public static void main(String[] args)
        {
            String user = ActiveMQConnection.DEFAULT_USER;
            String password = ActiveMQConnection.DEFAULT_PASSWORD;
            String url = ActiveMQConnection.DEFAULT_BROKER_URL;
            String subject = "TOOL.DEFAULT";
            
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
            
            try
            {
                Connection connection = connectionFactory.createConnection();
                connection.start();
                final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                Destination destination = session.createQueue(subject);
                MessageConsumer consumer = session.createConsumer(destination);
                consumer.setMessageListener(new MessageListener()
                {
                    
                    @Override
                    public void onMessage(Message msg)
                    {
                        MapMessage message = (MapMessage)msg;
                        Date date = new Date();
                        try
                        {
                            System.out.println("--收到消息:"+new Date(message.getLong("count")));
    
                            session.commit();
                        }
                        catch (JMSException e)
                        {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                });
                Thread.sleep(10000);
                session.close();
                connection.close();
            }
            catch (Exception e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
    }
    

      

    Producer.java
    package com.panie.mq.queue;
    
    import java.util.Date;
    
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MapMessage;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    
    import org.apache.activemq.ActiveMQConnection;
    import org.apache.activemq.ActiveMQConnectionFactory;
    
    public class Producer
    {
        public static void main(String[] args)
        {
            String user = ActiveMQConnection.DEFAULT_USER;
            String password = ActiveMQConnection.DEFAULT_PASSWORD;
            String url = ActiveMQConnection.DEFAULT_BROKER_URL;
            String subject = "TOOL.DEFAULT";
            
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
            
            try
            {
                Connection connection = connectionFactory.createConnection();
                connection.start();
                Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                Destination destination = session.createQueue(subject);
                MessageProducer producer = session.createProducer(destination);
                for(int i=0;i<=20;i++)
                {
                    MapMessage message = session.createMapMessage();
                    Date date = new Date();
                    message.setLong("count", date.getTime());
                    Thread.sleep(1000);
                    producer.send(message);
                    System.out.println("--发送消息:"+date);
                }
                session.commit();
                session.close();
                connection.close();
            }
            catch (Exception e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
    }
    

      

    运行这两个方法,则可以在控制台看到  consumer 输出了 producter 产生的消息

  • 相关阅读:
    JS事件冒泡
    iis设置Gzip后,无后缀的url无法压缩解决 MVC iis GZIP
    SQL中的循环、for循环、游标
    采用CDN加速后,如何在程序里获取用户IP地址
    Resharper 的快捷键
    JS防后退跳转
    ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
    Log4net创建日志及简单扩展
    统治世界的十大算法
    ffmpeg save rtsp stream
  • 原文地址:https://www.cnblogs.com/panie2015/p/5569356.html
Copyright © 2011-2022 走看看