一:ActiveMQ的安装
1. 到http://activemq.apache.org/去下载个最新版(我下载的是5.5)
2. 解压apache-activemq-5.4.2-bin.tar.gz文件
3. 进入apache-activemq-5.4.2/bin目录
4. 启动ActiveMQ,运行命令“./activemq start”
停止ActiveMQ,运行命令“./activemq stop”
查看ActiveMQ状态,运行命令“./activemq status”
5. 启动好ActiveMQ之后,可以通过http://localhost:8161/admin来在浏览器里访问查看和管理消息
二:简单的代码试验
下面是发送方的代码:
package RestaurantSever;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Sender {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("myQueue");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
while(true) {
TextMessage message = session.createTextMessage();
message.setText("message_" + System.currentTimeMillis());
producer.send(message);
System.out.println("Sent message: " + message.getText());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// session.close();
// connection.stop();
// connection.close();
}
}
下面是接受方的代码:
package RestaurantSever;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Receiver {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("myQueue");
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage tm = (TextMessage) message;
try {
System.out.println("Received message: " + tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
// session.close();
// connection.stop();
// connection.close();
}
}
三:activeMQ的退出
退出activeMQ的话只需在运行 activemq.bat 的那个Cmd窗口按下Ctrl-C即可。