一: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即可。