1. 下载 解压
下载
wget https://archive.apache.org/dist/activemq/5.15.0/apache-activemq-5.15.0-bin.tar.gz
解压
tar -zxvf apache-activemq-5.15.0-bin.tar.gz
3. 启动
bin/activemq start
4. 示例代码
这是源代码的下载 还有maven地址
然而我们要参考的示例代码在第一步下载的启动包
我们看一下openwire的例子
package com.sonic.active.openwire;
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;
import com.sonic.active.LogCore;
class Publisher {
public static void main(String[] args) throws JMSException {
String user = "admin";
String password = "foobared";//目前不知道作用
String host = "123.56.13.70";
int port = 61616;
String destination = "bao";
String brokerURL = "tcp://" + host + ":" + port;
int messages = 10;
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(brokerURL);
Connection connection = factory.createConnection(user, password);
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination dest = new ActiveMQTopic(destination);
MessageProducer producer = session.createProducer(dest);
producer.setDeliveryMode(DeliveryMode.PERSISTENT );//DeliveryMode.NON_PERSISTENT)
for (int i = 1; i <= messages; i++) {
String text = "你好amq" + i;
TextMessage msg = session.createTextMessage(text);
msg.setIntProperty("id", i);
producer.send(msg);
LogCore.BASE.info("msg {} {}", i, msg.getText());
}
producer.send(session.createTextMessage("SHUTDOWN"));// 发送个自定义的结束标志
connection.close();
}
}
package com.sonic.active.openwire;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;
import com.sonic.active.LogCore;
import javax.jms.*;
class Listener {
public static void main(String[] args) throws JMSException {
String user = "admin";
String password = "password";//目前不知道作用
String host = "123.56.13.70";
int port = 61616;
String destination = "bao";
String brokerURL = "tcp://" + host + ":" + port;
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(brokerURL);
Connection connection = factory.createConnection(user, password);
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination dest = new ActiveMQTopic(destination);
MessageConsumer consumer = session.createConsumer(dest);
long start = System.currentTimeMillis();
long count = 1;
System.out.println("Waiting for messages...");
while (true) {
Message msg = consumer.receive();
if (msg instanceof TextMessage) {
String body = ((TextMessage) msg).getText();
if ("SHUTDOWN".equals(body)) {
long diff = System.currentTimeMillis() - start;
System.out.println(
String.format("Received %d in %.2f seconds", count, (1.0 * diff / 1000.0)));
break;
}
LogCore.BASE.info("rsv msg id property is {}, body is:{}",msg.getIntProperty("id"), body);
continue;
}
System.out.println("Unexpected message type: " + msg.getClass());
}
connection.close();
}
}