ActiveMQ兩種使用方法
1:首先去官網下載ActiveMQ官網地址爲:http://activemq.apache.org如下圖
2:解壓縮文件,啓動文件下的bat文件,啓動服務
3:創建Maven工程,添加如下依賴包
依賴包包爲:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.9.0</version>
</dependency>
4:創建生成者---消費者(先有消息才能去接收消息)方式發送消息(方式一)
消息的生產者
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppProducer {
private static final String url="tcp://192.168.1.105:61616";
private static final String queueName="queue-test";
public static void main(String[] args) throws JMSException {
//1:創建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:創建連接
Connection connection = connectionFactory.createConnection();
//3:啓動連接
connection.start();
//4:創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:創建目標
Destination destination = session.createQueue(queueName);
//6:創建生產者
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i < 100; i++) {
TextMessage msg = session.createTextMessage("消息內容爲:"+i);
producer.send(msg);
}
connection.close();
}
}
消息的消費者
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppConsumer {
private static final String url="tcp://192.168.1.105:61616";
private static final String queueName="queue-test";
public static void main(String[] args) throws JMSException {
//1:創建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:創建連接
Connection connection = connectionFactory.createConnection();
//3:啓動連接
connection.start();
//4:創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:創建目標
Destination destination = session.createQueue(queueName);
//6:創建消費者
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
TextMessage msg=(TextMessage) message;
try {
System.out.println(msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
//connection.close();
}
}
5:訂閱-發佈方式發送消息(方式二)---先訂閱消息,後發佈消息,訂閱者才能接收到消息
消息的訂閱者
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppConsumer1 {
private static final String url="tcp://192.168.1.105:61616";
private static final String topic="topic-test";
public static void main(String[] args) throws JMSException {
//1:創建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:創建連接
Connection connection = connectionFactory.createConnection();
//3:啓動連接
connection.start();
//4:創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:創建目標
Destination destination = session.createTopic(topic);
//6:創建消費者
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
TextMessage msg=(TextMessage) message;
try {
System.out.println(msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
//connection.close();
}
}
消息發佈者:
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppProducer2 {
private static final String url="tcp://192.168.1.105:61616";
private static final String topic="topic-test";
public static void main(String[] args) throws JMSException {
//1:創建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:創建連接
Connection connection = connectionFactory.createConnection();
//3:啓動連接
connection.start();
//4:創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:創建目標
Destination destination = session.createTopic(topic);
//6:創建生產者
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i < 100; i++) {
TextMessage msg = session.createTextMessage("消息內容爲:"+i);
producer.send(msg);
}
connection.close();
}
}