初次使用ActiveMQ,借助百度(近来常规方式google无法访问)搜索了JMS1.1规范阅读了一下,于是动手开始尝试实现一个消息生产和消费的示例。

   

   言简意赅,先来一个HelloWorld再说!

  1.  拜访http://activemq.apache.org/ 了解activemq的相关信息,并下载

  2.  了解activemq的快速开始的手册,然后启动activemq服务,看到如下图输出,表示启动服务成功

  3. 默认情况下打开浏览器访问:http://localhost:8161/admin 即可进入activemq的管理界面

下面是通过ActiveMQ实现消息生产和消息消费的具体实现:

    如果使用Maven的话可以直接添加依赖:

               
org.apache.activemq
               
activemq-all
               
5.9.0
           

    如果不适用Maven只需要添加activemq-all.jar(该jar在下载的activemq的二进制分发包中已经包含)

  •  创建一个消息生产进程:

private static String providerAddress = "tcp://localhost:61616";       private static String messageDest = "messageDest";          @Test       public void messageProducer() throws JMSException, InterruptedException {           // 获取连接工厂           ConnectionFactory connectFactory = new ActiveMQConnectionFactory(                   providerAddress);           // 获取连接           Connection connection = connectFactory.createConnection();           connection.start();           // 创建会话           Session session = connection.createSession(false,                   Session.AUTO_ACKNOWLEDGE);           // 创建消息目的地           Destination dest = session.createQueue(messageDest);           // 创建消息提供者           MessageProducer producer = session.createProducer(dest);           // 通过会话创建消息           TextMessage message=session.createTextMessage("Hello World ActiveMQ");           // 发送消息           producer.send(message);           //收尾处理           producer.close();           session.close();           connection.close();       }

   通过上面的代码注释,可以看出一个消息生产的过程。

  •  创建一个消息消费进程

@Test       public void messageConsumer() throws JMSException {           //创建连接工厂           ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(providerAddress);           //获取连接           Connection connection =connectionFactory.createConnection();           connection.start();           //创建会话           Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);           //创建消息目的地           Destination dest=session.createQueue(messageDest);           //创建消息消费者           MessageConsumer consumer=session.createConsumer(dest);           //接受消息           TextMessage message=(TextMessage) consumer.receive();           System.out.println(message.getText());           //收尾处理           consumer.close();           session.close();           connection.close();       }

消息消费也可以使用消息监听的方式来接受消息,具体使用如下代码:

consumer.setMessageListener(new MessageListener() {                              @Override               public void onMessage(Message message) {                   try {                       System.out.println(((TextMessage)message).getText());                   } catch (JMSException e) {                       e.printStackTrace();                   }               }           });  
  • 启动程序,看效果     

    上面已经启动了ActiveMQ服务,然后运行测试程序,这样就可以看到控制台打印:Hello World ActiveMQ ;表示消息已经生产成功,并且已经消费。