Active Mq 扫盲

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.创建Eclipse项目并运行

需要的jar 包

activemq-core-5.5.1.jar

geronimo-j2ee-management_1.1_spec-1.0.1.jar

geronimo-jms_1.1_spec-1.1.1.jar

package com.soft;

扫描二维码关注公众号,回复: 393318 查看本文章

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.DeliveryMode;

import javax.jms.Destination;

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 {

private static final int SEND_NUMBER = 5;

public static void main(String[] args) {

ConnectionFactory connectionFactory;

Connection connection = null;

Session session;

// Destination :消息的目的地;消息发送给谁.    

Destination destination;

   // MessageProducer:消息发送者

MessageProducer producer;

// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar

connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");

try {

connection = connectionFactory.createConnection();

connection.start();

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

// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置

destination = session.createQueue("FirstQueue");

// 得到消息生成者【发送者】

producer = session.createProducer(destination);

// 设置不持久化,此处学习,实际根据项目决定

producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

// 构造消息,此处写死,项目就是参数,或者方法获取

sendMessage(session, producer);

session.commit();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (null != connection)

connection.close();

} catch (Throwable ignore) {

}

}

}

/**

* 发送消息

* @param session

* @param producer

* @throws Exception

*/

public static void sendMessage(Session session, MessageProducer producer)throws Exception {       

for (int i = 1; i <= SEND_NUMBER; i++) {            

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

// 发送消息到目的地方            

System.out.println("发送消息:" + "ActiveMq 发送的消息" + i);            

producer.send(message);   

}

}

}

package com.soft;

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 {

public static void main(String[] args) {        

ConnectionFactory connectionFactory;        

Connection connection = null;        

Session session;        

// Destination :消息的目的地;消息发送给谁.

Destination destination;       

// 消费者,消息接收者       

MessageConsumer consumer;        

connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");       

try {            

connection = connectionFactory.createConnection();            

connection.start();            

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

// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置            

destination = session.createQueue("FirstQueue");            

consumer = session.createConsumer(destination);            

while (true) {                

//设置接收者接收消息的时间,为了便于测试,这里谁定为100s                

TextMessage message = (TextMessage) consumer.receive(100000);                

if (null != message) {                    

System.out.println("收到消息" + message.getText());                

} else {                    

break;                

}            

}        

} catch (Exception e) {            

e.printStackTrace();        

} finally {            

try {                

if (null != connection)                   

connection.close();            

} catch (Throwable ignore) {           

}        

}

}

猜你喜欢

转载自taiwei-peng.iteye.com/blog/2374897